/**
 * This file was auto-generated by openapi-typescript.
 * Do not make direct changes to the file.
 */


export interface paths {
  "/api/user": {
    get: operations["UserController_getProfile"];
    post: operations["UserController_create"];
  };
  "/api/user/{id}": {
    get: operations["UserController_findById"];
  };
  "/api/auth": {
    post: operations["AuthController_signIn"];
  };
  "/api": {
    get: operations["AppController_getHello"];
  };
}

export type webhooks = Record<string, never>;

export interface components {
  schemas: {
    SonarrSettings: {
      apiKey: string;
      baseUrl: string;
      qualityProfileId: number;
      rootFolderPath: string;
      languageProfileId: number;
    };
    RadarrSettings: {
      apiKey: string;
      baseUrl: string;
      qualityProfileId: number;
      rootFolderPath: string;
    };
    JellyfinSettings: {
      apiKey: string;
      baseUrl: string;
      userId: string;
    };
    TmdbSettings: {
      sessionId: string;
      userId: string;
    };
    Settings: {
      autoplayTrailers: boolean;
      language: string;
      animationDuration: number;
      sonarr: components["schemas"]["SonarrSettings"];
      radarr: components["schemas"]["RadarrSettings"];
      jellyfin: components["schemas"]["JellyfinSettings"];
      tmdb: components["schemas"]["TmdbSettings"];
    };
    UserDto: {
      id: string;
      name: string;
      isAdmin: boolean;
      settings: components["schemas"]["Settings"];
    };
    CreateUserDto: {
      name: string;
      password: string;
      isAdmin: boolean;
    };
    SignInDto: {
      name: string;
      password: string;
    };
    SignInResponse: {
      accessToken: string;
    };
  };
  responses: never;
  parameters: never;
  requestBodies: never;
  headers: never;
  pathItems: never;
}

export type $defs = Record<string, never>;

export type external = Record<string, never>;

export interface operations {

  UserController_getProfile: {
    responses: {
      /** @description User found */
      200: {
        content: {
          "application/json": components["schemas"]["UserDto"];
        };
      };
      404: {
        content: {
          "application/json": {
            /** @example 404 */
            statusCode: number;
            /** @example Not Found */
            message: string;
            /** @example Not Found */
            error?: string;
          };
        };
      };
    };
  };
  UserController_create: {
    requestBody: {
      content: {
        "application/json": components["schemas"]["CreateUserDto"];
      };
    };
    responses: {
      200: {
        content: never;
      };
    };
  };
  UserController_findById: {
    parameters: {
      path: {
        id: string;
      };
    };
    responses: {
      /** @description User found */
      200: {
        content: {
          "application/json": components["schemas"]["UserDto"];
        };
      };
      404: {
        content: {
          "application/json": {
            /** @example 404 */
            statusCode: number;
            /** @example Not Found */
            message: string;
            /** @example Not Found */
            error?: string;
          };
        };
      };
    };
  };
  AuthController_signIn: {
    requestBody: {
      content: {
        "application/json": components["schemas"]["SignInDto"];
      };
    };
    responses: {
      /** @description User found */
      200: {
        content: {
          "application/json": components["schemas"]["SignInResponse"];
        };
      };
      401: {
        content: {
          "application/json": {
            /** @example 401 */
            statusCode: number;
            /** @example Unauthorized */
            message: string;
            /** @example Unauthorized */
            error?: string;
          };
        };
      };
    };
  };
  AppController_getHello: {
    responses: {
      200: {
        content: never;
      };
    };
  };
}
