/** * Generated by orval v7.17.0 🍺 * Do not edit manually. * OpenAPI definition * OpenAPI spec version: v0 */ export interface RegistrationRequestDTO { name?: string; email?: string; password?: string; } export interface DefaultResponseDTOVoid { timestamp?: string; data?: unknown; message?: string; } export interface ImportRequestDTO { malId?: string; aniListId?: string; id: string; } export interface DefaultResponseDTOImportMangaResponseDTO { timestamp?: string; data?: ImportMangaResponseDTO; message?: string; } export interface ImportMangaResponseDTO { id: number; } export interface FileImportRequestDTO { malId?: string; aniListId?: string; files?: Blob[]; } export interface PresignedImportRequestDTO { malId?: number; aniListId?: number; /** @minLength 1 */ originalFilename: string; } export interface DefaultResponseDTOPresignedImportResponseDTO { timestamp?: string; data?: PresignedImportResponseDTO; message?: string; } export interface PresignedImportResponseDTO { jobId?: number; presignedUrl?: string; fileKey?: string; } export interface AuthenticationRequestDTO { email: string; password: string; } export type AuthenticationResponseDTORole = typeof AuthenticationResponseDTORole[keyof typeof AuthenticationResponseDTORole]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const AuthenticationResponseDTORole = { USER: 'USER', } as const; export interface AuthenticationResponseDTO { id: number; accessToken: string; refreshToken: string; email: string; name: string; role: AuthenticationResponseDTORole; } export interface DefaultResponseDTOAuthenticationResponseDTO { timestamp?: string; data?: AuthenticationResponseDTO; message?: string; } export interface RefreshTokenRequestDTO { refreshToken: string; } export interface DefaultResponseDTOUserStatisticsDTO { timestamp?: string; data?: UserStatisticsDTO; message?: string; } export interface UserRecentActivityDTO { mangaTitle?: string; contentTitle?: string; readAt?: string; mangaId?: number; } export interface UserStatisticsDTO { favoriteMangaCount?: number; mangaReadingCount?: number; chaptersReadCount?: number; lastReadContent?: UserRecentActivityDTO; hasReadingActivity?: boolean; recentActivities?: UserRecentActivityDTO[]; } export interface ContentProviderDTO { id?: number; /** @minLength 1 */ name: string; url?: string; active?: boolean; supportsContentFetch?: boolean; } export interface ContentProviderListDTO { providers: ContentProviderDTO[]; } export interface DefaultResponseDTOContentProviderListDTO { timestamp?: string; data?: ContentProviderListDTO; message?: string; } export interface DefaultResponseDTOListMangaContentDTO { timestamp?: string; data?: MangaContentDTO[]; message?: string; } export interface LanguageDTO { id: number; /** @minLength 1 */ code: string; /** @minLength 1 */ name: string; } export interface MangaContentDTO { id: number; /** @minLength 1 */ title: string; downloaded: boolean; isRead: boolean; language?: LanguageDTO; } export interface DefaultResponseDTOMangaContentImagesDTO { timestamp?: string; data?: MangaContentImagesDTO; message?: string; } export interface MangaContentImagesDTO { id: number; /** @minLength 1 */ mangaTitle: string; previousContentId?: number; nextContentId?: number; contentImageKeys: string[]; } export interface DefaultResponseDTOMangaImportJobPageResponseDTO { timestamp?: string; data?: MangaImportJobPageResponseDTO; message?: string; } export type MangaImportJobDTOStatus = typeof MangaImportJobDTOStatus[keyof typeof MangaImportJobDTOStatus]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const MangaImportJobDTOStatus = { PENDING: 'PENDING', PROCESSING: 'PROCESSING', SUCCESS: 'SUCCESS', FAILED: 'FAILED', } as const; export interface MangaImportJobDTO { id?: number; status?: MangaImportJobDTOStatus; malId?: number; aniListId?: number; filename?: string; s3Key?: string; createdAt?: string; updatedAt?: string; errorMessage?: string; errorStackTrace?: string; } export interface MangaImportJobPageResponseDTO { page?: PageMangaImportJobDTO; totalJobs?: number; pendingJobs?: number; processingJobs?: number; completedJobs?: number; failedJobs?: number; } export interface PageMangaImportJobDTO { totalPages?: number; totalElements?: number; size?: number; content?: MangaImportJobDTO[]; number?: number; pageable?: PageableObject; numberOfElements?: number; sort?: SortObject; first?: boolean; last?: boolean; empty?: boolean; } export interface PageableObject { offset?: number; pageNumber?: number; pageSize?: number; paged?: boolean; unpaged?: boolean; sort?: SortObject; } export interface SortObject { empty?: boolean; sorted?: boolean; unsorted?: boolean; } export interface DefaultResponseDTOPageMangaListDTO { timestamp?: string; data?: PageMangaListDTO; message?: string; } export type MangaListDTOStatus = typeof MangaListDTOStatus[keyof typeof MangaListDTOStatus]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const MangaListDTOStatus = { ONGOING: 'ONGOING', COMPLETED: 'COMPLETED', HIATUS: 'HIATUS', CANCELLED: 'CANCELLED', UNKNOWN: 'UNKNOWN', } as const; export interface MangaListDTO { id: number; /** @minLength 1 */ title: string; coverImageKey?: string; status?: MangaListDTOStatus; publishedFrom?: string; publishedTo?: string; providerCount?: number; genres: string[]; authors: string[]; score: number; favorite: boolean; adult: boolean; } export interface PageMangaListDTO { totalPages?: number; totalElements?: number; size?: number; content?: MangaListDTO[]; number?: number; pageable?: PageableObject; numberOfElements?: number; sort?: SortObject; first?: boolean; last?: boolean; empty?: boolean; } export interface DefaultResponseDTOMangaDTO { timestamp?: string; data?: MangaDTO; message?: string; } export type MangaDTOStatus = typeof MangaDTOStatus[keyof typeof MangaDTOStatus]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const MangaDTOStatus = { ONGOING: 'ONGOING', COMPLETED: 'COMPLETED', HIATUS: 'HIATUS', CANCELLED: 'CANCELLED', UNKNOWN: 'UNKNOWN', } as const; export interface MangaDTO { id: number; /** @minLength 1 */ title: string; coverImageKey?: string; status?: MangaDTOStatus; publishedFrom?: string; publishedTo?: string; synopsis?: string; providerCount?: number; alternativeTitles: string[]; genres: string[]; authors: string[]; score: number; providers: MangaProviderDTO[]; chapterCount: number; favorite: boolean; following: boolean; adult: boolean; } export interface MangaProviderDTO { id?: number; /** @minLength 1 */ providerName: string; active?: boolean; chaptersAvailable: number; chaptersDownloaded: number; supportsChapterFetch: boolean; } export interface DefaultResponseDTOListMangaIngestReviewDTO { timestamp?: string; data?: MangaIngestReviewDTO[]; message?: string; } export interface MangaIngestReviewDTO { id: number; /** @minLength 1 */ title: string; /** @minLength 1 */ contentProviderName: string; externalUrl?: string; /** @minLength 1 */ reason: string; createdAt: string; } export interface DefaultResponseDTOListGenreDTO { timestamp?: string; data?: GenreDTO[]; message?: string; } export interface GenreDTO { id: number; /** @minLength 1 */ name: string; } export type DownloadContentArchiveParams = { contentArchiveFileType: DownloadContentArchiveContentArchiveFileType; }; export type DownloadContentArchiveContentArchiveFileType = typeof DownloadContentArchiveContentArchiveFileType[keyof typeof DownloadContentArchiveContentArchiveFileType]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const DownloadContentArchiveContentArchiveFileType = { CBZ: 'CBZ', CBR: 'CBR', } as const; export type ResolveMangaIngestReviewParams = { id: number; malId?: number; aniListId?: number; }; export type GetContentProvidersParams = { manualImport?: boolean; }; export type GetMangaImportJobsParams = { searchQuery?: string; status?: GetMangaImportJobsStatus; /** * Zero-based page index (0..N) * @minimum 0 */ page?: number; /** * The size of the page to be returned * @minimum 1 */ size?: number; /** * Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. */ sort?: string[]; }; export type GetMangaImportJobsStatus = typeof GetMangaImportJobsStatus[keyof typeof GetMangaImportJobsStatus]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const GetMangaImportJobsStatus = { PENDING: 'PENDING', PROCESSING: 'PROCESSING', SUCCESS: 'SUCCESS', FAILED: 'FAILED', } as const; export type GetMangasParams = { searchQuery?: string; genreIds?: number[]; statuses?: string[]; userFavorites?: boolean; score?: number; adult?: boolean; /** * Zero-based page index (0..N) * @minimum 0 */ page?: number; /** * The size of the page to be returned * @minimum 1 */ size?: number; /** * Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. */ sort?: string[]; };