From 91caf5d5ca37d5543657f201a454761c082427ea Mon Sep 17 00:00:00 2001 From: wilson Date: Wed, 15 Apr 2026 21:02:11 +0100 Subject: [PATCH] chore: [frontend] Update the API client --- frontend/src/client/index.ts | 4 +- frontend/src/client/sdk.gen.ts | 153 ++++- frontend/src/client/types.gen.ts | 948 +++++++++++++++++++++++++++++++ frontend/src/lib/openapi.json | 2 +- 4 files changed, 1103 insertions(+), 4 deletions(-) diff --git a/frontend/src/client/index.ts b/frontend/src/client/index.ts index 4f5b1a5..15ac10d 100644 --- a/frontend/src/client/index.ts +++ b/frontend/src/client/index.ts @@ -1,4 +1,4 @@ // This file is auto-generated by @hey-api/openapi-ts -export { addFromTokenApiVocabFromTokenPost, addLearnableLanguageApiAccountLearnableLanguagesPost, addWordApiVocabPost, analyzePosApiPosPost, completeOnboardingApiAccountOnboardingPost, createGenerationJobApiGeneratePost, generateFlashcardsApiVocabEntryIdFlashcardsPost, getAccountBffAccountGet, getAccountStatusApiAccountStatusGet, getArticleBffArticlesArticleIdGet, getJobApiJobsJobIdGet, getJobsApiJobsGet, getMediaFileMediaFilenameGet, getOnboardingBffAccountOnboardingGet, getUserProfileBffUserProfileGet, healthHealthGet, listArticlesBffArticlesGet, listEntriesApiVocabGet, listFlashcardsApiFlashcardsGet, loginApiAuthLoginPost, type Options, pendingDisambiguationApiVocabPendingDisambiguationGet, recordEventApiFlashcardsFlashcardIdEventsPost, regenerateAudioApiJobsJobIdRegenerateAudioPost, registerApiAuthRegisterPost, removeLearnableLanguageApiAccountLearnableLanguagesLanguageIdDelete, resolveSenseApiVocabEntryIdSensePatch, translateTextApiTranslateGet, upsertLearnableLanguageApiLearnableLanguagesPost, verifyEmailApiAuthVerifyEmailGet } from './sdk.gen'; -export type { AccountLanguagePair, AccountResponse, AccountStatusResponse, AddFromTokenApiVocabFromTokenPostData, AddFromTokenApiVocabFromTokenPostError, AddFromTokenApiVocabFromTokenPostErrors, AddFromTokenApiVocabFromTokenPostResponse, AddFromTokenApiVocabFromTokenPostResponses, AddFromTokenRequest, AddLearnableLanguageApiAccountLearnableLanguagesPostData, AddLearnableLanguageApiAccountLearnableLanguagesPostError, AddLearnableLanguageApiAccountLearnableLanguagesPostErrors, AddLearnableLanguageApiAccountLearnableLanguagesPostResponse, AddLearnableLanguageApiAccountLearnableLanguagesPostResponses, AddLearnableLanguageRequest, AddWordApiVocabPostData, AddWordApiVocabPostError, AddWordApiVocabPostErrors, AddWordApiVocabPostResponse, AddWordApiVocabPostResponses, AddWordRequest, AnalyzePosApiPosPostData, AnalyzePosApiPosPostError, AnalyzePosApiPosPostErrors, AnalyzePosApiPosPostResponse, AnalyzePosApiPosPostResponses, ArticleDetail, ArticleItem, ArticleListResponse, ClientOptions, CompleteOnboardingApiAccountOnboardingPostData, CompleteOnboardingApiAccountOnboardingPostError, CompleteOnboardingApiAccountOnboardingPostErrors, CompleteOnboardingApiAccountOnboardingPostResponse, CompleteOnboardingApiAccountOnboardingPostResponses, CreateGenerationJobApiGeneratePostData, CreateGenerationJobApiGeneratePostError, CreateGenerationJobApiGeneratePostErrors, CreateGenerationJobApiGeneratePostResponse, CreateGenerationJobApiGeneratePostResponses, FlashcardEventResponse, FlashcardResponse, FromTokenResponse, GenerateFlashcardsApiVocabEntryIdFlashcardsPostData, GenerateFlashcardsApiVocabEntryIdFlashcardsPostError, GenerateFlashcardsApiVocabEntryIdFlashcardsPostErrors, GenerateFlashcardsApiVocabEntryIdFlashcardsPostResponse, GenerateFlashcardsApiVocabEntryIdFlashcardsPostResponses, GenerateFlashcardsRequest, GenerationRequest, GenerationResponse, GetAccountBffAccountGetData, GetAccountBffAccountGetResponse, GetAccountBffAccountGetResponses, GetAccountStatusApiAccountStatusGetData, GetAccountStatusApiAccountStatusGetResponse, GetAccountStatusApiAccountStatusGetResponses, GetArticleBffArticlesArticleIdGetData, GetArticleBffArticlesArticleIdGetError, GetArticleBffArticlesArticleIdGetErrors, GetArticleBffArticlesArticleIdGetResponse, GetArticleBffArticlesArticleIdGetResponses, GetJobApiJobsJobIdGetData, GetJobApiJobsJobIdGetError, GetJobApiJobsJobIdGetErrors, GetJobApiJobsJobIdGetResponse, GetJobApiJobsJobIdGetResponses, GetJobsApiJobsGetData, GetJobsApiJobsGetResponse, GetJobsApiJobsGetResponses, GetMediaFileMediaFilenameGetData, GetMediaFileMediaFilenameGetError, GetMediaFileMediaFilenameGetErrors, GetMediaFileMediaFilenameGetResponses, GetOnboardingBffAccountOnboardingGetData, GetOnboardingBffAccountOnboardingGetResponse, GetOnboardingBffAccountOnboardingGetResponses, GetUserProfileBffUserProfileGetData, GetUserProfileBffUserProfileGetResponse, GetUserProfileBffUserProfileGetResponses, HealthHealthGetData, HealthHealthGetResponse, HealthHealthGetResponses, HttpValidationError, JobListResponse, JobResponse, JobSummary, LanguagePairOption, LearnableLanguageItem, LearnableLanguageRequest, LearnableLanguageResponse, ListArticlesBffArticlesGetData, ListArticlesBffArticlesGetError, ListArticlesBffArticlesGetErrors, ListArticlesBffArticlesGetResponse, ListArticlesBffArticlesGetResponses, ListEntriesApiVocabGetData, ListEntriesApiVocabGetError, ListEntriesApiVocabGetErrors, ListEntriesApiVocabGetResponse, ListEntriesApiVocabGetResponses, ListFlashcardsApiFlashcardsGetData, ListFlashcardsApiFlashcardsGetResponse, ListFlashcardsApiFlashcardsGetResponses, LoginApiAuthLoginPostData, LoginApiAuthLoginPostError, LoginApiAuthLoginPostErrors, LoginApiAuthLoginPostResponse, LoginApiAuthLoginPostResponses, LoginRequest, OnboardingRequest, OnboardingResponse, PendingDisambiguationApiVocabPendingDisambiguationGetData, PendingDisambiguationApiVocabPendingDisambiguationGetResponse, PendingDisambiguationApiVocabPendingDisambiguationGetResponses, PosRequest, PosResponse, ProficiencyOption, RecordEventApiFlashcardsFlashcardIdEventsPostData, RecordEventApiFlashcardsFlashcardIdEventsPostError, RecordEventApiFlashcardsFlashcardIdEventsPostErrors, RecordEventApiFlashcardsFlashcardIdEventsPostResponse, RecordEventApiFlashcardsFlashcardIdEventsPostResponses, RecordEventRequest, RegenerateAudioApiJobsJobIdRegenerateAudioPostData, RegenerateAudioApiJobsJobIdRegenerateAudioPostError, RegenerateAudioApiJobsJobIdRegenerateAudioPostErrors, RegenerateAudioApiJobsJobIdRegenerateAudioPostResponse, RegenerateAudioApiJobsJobIdRegenerateAudioPostResponses, RegisterApiAuthRegisterPostData, RegisterApiAuthRegisterPostError, RegisterApiAuthRegisterPostErrors, RegisterApiAuthRegisterPostResponse, RegisterApiAuthRegisterPostResponses, RegisterRequest, RegisterResponse, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteData, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteError, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteErrors, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponse, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponses, ResolveSenseApiVocabEntryIdSensePatchData, ResolveSenseApiVocabEntryIdSensePatchError, ResolveSenseApiVocabEntryIdSensePatchErrors, ResolveSenseApiVocabEntryIdSensePatchResponse, ResolveSenseApiVocabEntryIdSensePatchResponses, SenseCandidateResponse, SetSenseRequest, TokenInfo, TokenResponse, TranslateTextApiTranslateGetData, TranslateTextApiTranslateGetError, TranslateTextApiTranslateGetErrors, TranslateTextApiTranslateGetResponse, TranslateTextApiTranslateGetResponses, TranslationResponse, UpsertLearnableLanguageApiLearnableLanguagesPostData, UpsertLearnableLanguageApiLearnableLanguagesPostError, UpsertLearnableLanguageApiLearnableLanguagesPostErrors, UpsertLearnableLanguageApiLearnableLanguagesPostResponse, UpsertLearnableLanguageApiLearnableLanguagesPostResponses, UserProfileResponse, ValidationError, VerifyEmailApiAuthVerifyEmailGetData, VerifyEmailApiAuthVerifyEmailGetError, VerifyEmailApiAuthVerifyEmailGetErrors, VerifyEmailApiAuthVerifyEmailGetResponse, VerifyEmailApiAuthVerifyEmailGetResponses, WordBankEntryResponse } from './types.gen'; +export { addEntryApiAdminPacksPackIdEntriesPost, addFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPost, addFromTokenApiVocabFromTokenPost, addLearnableLanguageApiAccountLearnableLanguagesPost, addPackToBankApiPacksPackIdAddToBankPost, addWordApiVocabPost, analyzePosApiPosPost, completeOnboardingApiAccountOnboardingPost, createGenerationJobApiGeneratePost, createPackApiAdminPacksPost, generateFlashcardsApiVocabEntryIdFlashcardsPost, getAccountBffAccountGet, getAccountStatusApiAccountStatusGet, getArticleBffArticlesArticleIdGet, getJobApiJobsJobIdGet, getJobsApiJobsGet, getMediaFileMediaFilenameGet, getOnboardingBffAccountOnboardingGet, getPackApiAdminPacksPackIdGet, getPackApiPacksPackIdGet, getUserProfileBffUserProfileGet, healthHealthGet, listArticlesBffArticlesGet, listEntriesApiVocabGet, listFlashcardsApiFlashcardsGet, listPacksApiAdminPacksGet, listPacksApiPacksGet, listPacksForSelectionBffPacksGet, loginApiAuthLoginPost, type Options, pendingDisambiguationApiVocabPendingDisambiguationGet, publishPackApiAdminPacksPackIdPublishPost, recordEventApiFlashcardsFlashcardIdEventsPost, regenerateAudioApiJobsJobIdRegenerateAudioPost, registerApiAuthRegisterPost, removeEntryApiAdminPacksPackIdEntriesEntryIdDelete, removeFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDelete, removeLearnableLanguageApiAccountLearnableLanguagesLanguageIdDelete, resolveSenseApiVocabEntryIdSensePatch, searchWordformsApiDictionaryWordformsGet, translateTextApiTranslateGet, updatePackApiAdminPacksPackIdPatch, upsertLearnableLanguageApiLearnableLanguagesPost, verifyEmailApiAuthVerifyEmailGet } from './sdk.gen'; +export type { AccountLanguagePair, AccountResponse, AccountStatusResponse, AddEntryApiAdminPacksPackIdEntriesPostData, AddEntryApiAdminPacksPackIdEntriesPostError, AddEntryApiAdminPacksPackIdEntriesPostErrors, AddEntryApiAdminPacksPackIdEntriesPostResponse, AddEntryApiAdminPacksPackIdEntriesPostResponses, AddEntryRequest, AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostData, AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostError, AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostErrors, AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostResponse, AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostResponses, AddFlashcardTemplateRequest, AddFromTokenApiVocabFromTokenPostData, AddFromTokenApiVocabFromTokenPostError, AddFromTokenApiVocabFromTokenPostErrors, AddFromTokenApiVocabFromTokenPostResponse, AddFromTokenApiVocabFromTokenPostResponses, AddFromTokenRequest, AddLearnableLanguageApiAccountLearnableLanguagesPostData, AddLearnableLanguageApiAccountLearnableLanguagesPostError, AddLearnableLanguageApiAccountLearnableLanguagesPostErrors, AddLearnableLanguageApiAccountLearnableLanguagesPostResponse, AddLearnableLanguageApiAccountLearnableLanguagesPostResponses, AddLearnableLanguageRequest, AddPackToBankApiPacksPackIdAddToBankPostData, AddPackToBankApiPacksPackIdAddToBankPostError, AddPackToBankApiPacksPackIdAddToBankPostErrors, AddPackToBankApiPacksPackIdAddToBankPostResponse, AddPackToBankApiPacksPackIdAddToBankPostResponses, AddTobankRequest, AddTobankResponse, AddWordApiVocabPostData, AddWordApiVocabPostError, AddWordApiVocabPostErrors, AddWordApiVocabPostResponse, AddWordApiVocabPostResponses, AddWordRequest, AnalyzePosApiPosPostData, AnalyzePosApiPosPostError, AnalyzePosApiPosPostErrors, AnalyzePosApiPosPostResponse, AnalyzePosApiPosPostResponses, AppRoutersApiAdminPacksPackDetailResponse, AppRoutersApiPacksPackDetailResponse, ArticleDetail, ArticleItem, ArticleListResponse, ClientOptions, CompleteOnboardingApiAccountOnboardingPostData, CompleteOnboardingApiAccountOnboardingPostError, CompleteOnboardingApiAccountOnboardingPostErrors, CompleteOnboardingApiAccountOnboardingPostResponse, CompleteOnboardingApiAccountOnboardingPostResponses, CreateGenerationJobApiGeneratePostData, CreateGenerationJobApiGeneratePostError, CreateGenerationJobApiGeneratePostErrors, CreateGenerationJobApiGeneratePostResponse, CreateGenerationJobApiGeneratePostResponses, CreatePackApiAdminPacksPostData, CreatePackApiAdminPacksPostError, CreatePackApiAdminPacksPostErrors, CreatePackApiAdminPacksPostResponse, CreatePackApiAdminPacksPostResponses, CreatePackRequest, FlashcardEventResponse, FlashcardResponse, FlashcardTemplateResponse, FromTokenResponse, GenerateFlashcardsApiVocabEntryIdFlashcardsPostData, GenerateFlashcardsApiVocabEntryIdFlashcardsPostError, GenerateFlashcardsApiVocabEntryIdFlashcardsPostErrors, GenerateFlashcardsApiVocabEntryIdFlashcardsPostResponse, GenerateFlashcardsApiVocabEntryIdFlashcardsPostResponses, GenerateFlashcardsRequest, GenerationRequest, GenerationResponse, GetAccountBffAccountGetData, GetAccountBffAccountGetResponse, GetAccountBffAccountGetResponses, GetAccountStatusApiAccountStatusGetData, GetAccountStatusApiAccountStatusGetResponse, GetAccountStatusApiAccountStatusGetResponses, GetArticleBffArticlesArticleIdGetData, GetArticleBffArticlesArticleIdGetError, GetArticleBffArticlesArticleIdGetErrors, GetArticleBffArticlesArticleIdGetResponse, GetArticleBffArticlesArticleIdGetResponses, GetJobApiJobsJobIdGetData, GetJobApiJobsJobIdGetError, GetJobApiJobsJobIdGetErrors, GetJobApiJobsJobIdGetResponse, GetJobApiJobsJobIdGetResponses, GetJobsApiJobsGetData, GetJobsApiJobsGetResponse, GetJobsApiJobsGetResponses, GetMediaFileMediaFilenameGetData, GetMediaFileMediaFilenameGetError, GetMediaFileMediaFilenameGetErrors, GetMediaFileMediaFilenameGetResponses, GetOnboardingBffAccountOnboardingGetData, GetOnboardingBffAccountOnboardingGetResponse, GetOnboardingBffAccountOnboardingGetResponses, GetPackApiAdminPacksPackIdGetData, GetPackApiAdminPacksPackIdGetError, GetPackApiAdminPacksPackIdGetErrors, GetPackApiAdminPacksPackIdGetResponse, GetPackApiAdminPacksPackIdGetResponses, GetPackApiPacksPackIdGetData, GetPackApiPacksPackIdGetError, GetPackApiPacksPackIdGetErrors, GetPackApiPacksPackIdGetResponse, GetPackApiPacksPackIdGetResponses, GetUserProfileBffUserProfileGetData, GetUserProfileBffUserProfileGetResponse, GetUserProfileBffUserProfileGetResponses, HealthHealthGetData, HealthHealthGetResponse, HealthHealthGetResponses, HttpValidationError, JobListResponse, JobResponse, JobSummary, LanguagePairOption, LearnableLanguageItem, LearnableLanguageRequest, LearnableLanguageResponse, LemmaResponse, ListArticlesBffArticlesGetData, ListArticlesBffArticlesGetError, ListArticlesBffArticlesGetErrors, ListArticlesBffArticlesGetResponse, ListArticlesBffArticlesGetResponses, ListEntriesApiVocabGetData, ListEntriesApiVocabGetError, ListEntriesApiVocabGetErrors, ListEntriesApiVocabGetResponse, ListEntriesApiVocabGetResponses, ListFlashcardsApiFlashcardsGetData, ListFlashcardsApiFlashcardsGetResponse, ListFlashcardsApiFlashcardsGetResponses, ListPacksApiAdminPacksGetData, ListPacksApiAdminPacksGetError, ListPacksApiAdminPacksGetErrors, ListPacksApiAdminPacksGetResponse, ListPacksApiAdminPacksGetResponses, ListPacksApiPacksGetData, ListPacksApiPacksGetError, ListPacksApiPacksGetErrors, ListPacksApiPacksGetResponse, ListPacksApiPacksGetResponses, ListPacksForSelectionBffPacksGetData, ListPacksForSelectionBffPacksGetError, ListPacksForSelectionBffPacksGetErrors, ListPacksForSelectionBffPacksGetResponse, ListPacksForSelectionBffPacksGetResponses, LoginApiAuthLoginPostData, LoginApiAuthLoginPostError, LoginApiAuthLoginPostErrors, LoginApiAuthLoginPostResponse, LoginApiAuthLoginPostResponses, LoginRequest, OnboardingRequest, OnboardingResponse, PackEntryResponse, PackResponse, PackSelectionItem, PackSummaryResponse, PendingDisambiguationApiVocabPendingDisambiguationGetData, PendingDisambiguationApiVocabPendingDisambiguationGetResponse, PendingDisambiguationApiVocabPendingDisambiguationGetResponses, PosRequest, PosResponse, ProficiencyOption, PublishPackApiAdminPacksPackIdPublishPostData, PublishPackApiAdminPacksPackIdPublishPostError, PublishPackApiAdminPacksPackIdPublishPostErrors, PublishPackApiAdminPacksPackIdPublishPostResponse, PublishPackApiAdminPacksPackIdPublishPostResponses, RecordEventApiFlashcardsFlashcardIdEventsPostData, RecordEventApiFlashcardsFlashcardIdEventsPostError, RecordEventApiFlashcardsFlashcardIdEventsPostErrors, RecordEventApiFlashcardsFlashcardIdEventsPostResponse, RecordEventApiFlashcardsFlashcardIdEventsPostResponses, RecordEventRequest, RegenerateAudioApiJobsJobIdRegenerateAudioPostData, RegenerateAudioApiJobsJobIdRegenerateAudioPostError, RegenerateAudioApiJobsJobIdRegenerateAudioPostErrors, RegenerateAudioApiJobsJobIdRegenerateAudioPostResponse, RegenerateAudioApiJobsJobIdRegenerateAudioPostResponses, RegisterApiAuthRegisterPostData, RegisterApiAuthRegisterPostError, RegisterApiAuthRegisterPostErrors, RegisterApiAuthRegisterPostResponse, RegisterApiAuthRegisterPostResponses, RegisterRequest, RegisterResponse, RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteData, RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteError, RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteErrors, RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteResponse, RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteResponses, RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteData, RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteError, RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteErrors, RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteResponse, RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteResponses, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteData, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteError, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteErrors, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponse, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponses, ResolveSenseApiVocabEntryIdSensePatchData, ResolveSenseApiVocabEntryIdSensePatchError, ResolveSenseApiVocabEntryIdSensePatchErrors, ResolveSenseApiVocabEntryIdSensePatchResponse, ResolveSenseApiVocabEntryIdSensePatchResponses, SearchWordformsApiDictionaryWordformsGetData, SearchWordformsApiDictionaryWordformsGetError, SearchWordformsApiDictionaryWordformsGetErrors, SearchWordformsApiDictionaryWordformsGetResponse, SearchWordformsApiDictionaryWordformsGetResponses, SenseCandidateResponse, SenseResponse, SetSenseRequest, TokenInfo, TokenResponse, TranslateTextApiTranslateGetData, TranslateTextApiTranslateGetError, TranslateTextApiTranslateGetErrors, TranslateTextApiTranslateGetResponse, TranslateTextApiTranslateGetResponses, TranslationResponse, UpdatePackApiAdminPacksPackIdPatchData, UpdatePackApiAdminPacksPackIdPatchError, UpdatePackApiAdminPacksPackIdPatchErrors, UpdatePackApiAdminPacksPackIdPatchResponse, UpdatePackApiAdminPacksPackIdPatchResponses, UpdatePackRequest, UpsertLearnableLanguageApiLearnableLanguagesPostData, UpsertLearnableLanguageApiLearnableLanguagesPostError, UpsertLearnableLanguageApiLearnableLanguagesPostErrors, UpsertLearnableLanguageApiLearnableLanguagesPostResponse, UpsertLearnableLanguageApiLearnableLanguagesPostResponses, UserProfileResponse, ValidationError, VerifyEmailApiAuthVerifyEmailGetData, VerifyEmailApiAuthVerifyEmailGetError, VerifyEmailApiAuthVerifyEmailGetErrors, VerifyEmailApiAuthVerifyEmailGetResponse, VerifyEmailApiAuthVerifyEmailGetResponses, WordBankEntryResponse, WordformMatch } from './types.gen'; diff --git a/frontend/src/client/sdk.gen.ts b/frontend/src/client/sdk.gen.ts index 9455db8..c37253d 100644 --- a/frontend/src/client/sdk.gen.ts +++ b/frontend/src/client/sdk.gen.ts @@ -2,7 +2,7 @@ import type { Client, Options as Options2, TDataShape } from './client'; import { client } from './client.gen'; -import type { AddFromTokenApiVocabFromTokenPostData, AddFromTokenApiVocabFromTokenPostErrors, AddFromTokenApiVocabFromTokenPostResponses, AddLearnableLanguageApiAccountLearnableLanguagesPostData, AddLearnableLanguageApiAccountLearnableLanguagesPostErrors, AddLearnableLanguageApiAccountLearnableLanguagesPostResponses, AddWordApiVocabPostData, AddWordApiVocabPostErrors, AddWordApiVocabPostResponses, AnalyzePosApiPosPostData, AnalyzePosApiPosPostErrors, AnalyzePosApiPosPostResponses, CompleteOnboardingApiAccountOnboardingPostData, CompleteOnboardingApiAccountOnboardingPostErrors, CompleteOnboardingApiAccountOnboardingPostResponses, CreateGenerationJobApiGeneratePostData, CreateGenerationJobApiGeneratePostErrors, CreateGenerationJobApiGeneratePostResponses, GenerateFlashcardsApiVocabEntryIdFlashcardsPostData, GenerateFlashcardsApiVocabEntryIdFlashcardsPostErrors, GenerateFlashcardsApiVocabEntryIdFlashcardsPostResponses, GetAccountBffAccountGetData, GetAccountBffAccountGetResponses, GetAccountStatusApiAccountStatusGetData, GetAccountStatusApiAccountStatusGetResponses, GetArticleBffArticlesArticleIdGetData, GetArticleBffArticlesArticleIdGetErrors, GetArticleBffArticlesArticleIdGetResponses, GetJobApiJobsJobIdGetData, GetJobApiJobsJobIdGetErrors, GetJobApiJobsJobIdGetResponses, GetJobsApiJobsGetData, GetJobsApiJobsGetResponses, GetMediaFileMediaFilenameGetData, GetMediaFileMediaFilenameGetErrors, GetMediaFileMediaFilenameGetResponses, GetOnboardingBffAccountOnboardingGetData, GetOnboardingBffAccountOnboardingGetResponses, GetUserProfileBffUserProfileGetData, GetUserProfileBffUserProfileGetResponses, HealthHealthGetData, HealthHealthGetResponses, ListArticlesBffArticlesGetData, ListArticlesBffArticlesGetErrors, ListArticlesBffArticlesGetResponses, ListEntriesApiVocabGetData, ListEntriesApiVocabGetErrors, ListEntriesApiVocabGetResponses, ListFlashcardsApiFlashcardsGetData, ListFlashcardsApiFlashcardsGetResponses, LoginApiAuthLoginPostData, LoginApiAuthLoginPostErrors, LoginApiAuthLoginPostResponses, PendingDisambiguationApiVocabPendingDisambiguationGetData, PendingDisambiguationApiVocabPendingDisambiguationGetResponses, RecordEventApiFlashcardsFlashcardIdEventsPostData, RecordEventApiFlashcardsFlashcardIdEventsPostErrors, RecordEventApiFlashcardsFlashcardIdEventsPostResponses, RegenerateAudioApiJobsJobIdRegenerateAudioPostData, RegenerateAudioApiJobsJobIdRegenerateAudioPostErrors, RegenerateAudioApiJobsJobIdRegenerateAudioPostResponses, RegisterApiAuthRegisterPostData, RegisterApiAuthRegisterPostErrors, RegisterApiAuthRegisterPostResponses, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteData, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteErrors, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponses, ResolveSenseApiVocabEntryIdSensePatchData, ResolveSenseApiVocabEntryIdSensePatchErrors, ResolveSenseApiVocabEntryIdSensePatchResponses, TranslateTextApiTranslateGetData, TranslateTextApiTranslateGetErrors, TranslateTextApiTranslateGetResponses, UpsertLearnableLanguageApiLearnableLanguagesPostData, UpsertLearnableLanguageApiLearnableLanguagesPostErrors, UpsertLearnableLanguageApiLearnableLanguagesPostResponses, VerifyEmailApiAuthVerifyEmailGetData, VerifyEmailApiAuthVerifyEmailGetErrors, VerifyEmailApiAuthVerifyEmailGetResponses } from './types.gen'; +import type { AddEntryApiAdminPacksPackIdEntriesPostData, AddEntryApiAdminPacksPackIdEntriesPostErrors, AddEntryApiAdminPacksPackIdEntriesPostResponses, AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostData, AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostErrors, AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostResponses, AddFromTokenApiVocabFromTokenPostData, AddFromTokenApiVocabFromTokenPostErrors, AddFromTokenApiVocabFromTokenPostResponses, AddLearnableLanguageApiAccountLearnableLanguagesPostData, AddLearnableLanguageApiAccountLearnableLanguagesPostErrors, AddLearnableLanguageApiAccountLearnableLanguagesPostResponses, AddPackToBankApiPacksPackIdAddToBankPostData, AddPackToBankApiPacksPackIdAddToBankPostErrors, AddPackToBankApiPacksPackIdAddToBankPostResponses, AddWordApiVocabPostData, AddWordApiVocabPostErrors, AddWordApiVocabPostResponses, AnalyzePosApiPosPostData, AnalyzePosApiPosPostErrors, AnalyzePosApiPosPostResponses, CompleteOnboardingApiAccountOnboardingPostData, CompleteOnboardingApiAccountOnboardingPostErrors, CompleteOnboardingApiAccountOnboardingPostResponses, CreateGenerationJobApiGeneratePostData, CreateGenerationJobApiGeneratePostErrors, CreateGenerationJobApiGeneratePostResponses, CreatePackApiAdminPacksPostData, CreatePackApiAdminPacksPostErrors, CreatePackApiAdminPacksPostResponses, GenerateFlashcardsApiVocabEntryIdFlashcardsPostData, GenerateFlashcardsApiVocabEntryIdFlashcardsPostErrors, GenerateFlashcardsApiVocabEntryIdFlashcardsPostResponses, GetAccountBffAccountGetData, GetAccountBffAccountGetResponses, GetAccountStatusApiAccountStatusGetData, GetAccountStatusApiAccountStatusGetResponses, GetArticleBffArticlesArticleIdGetData, GetArticleBffArticlesArticleIdGetErrors, GetArticleBffArticlesArticleIdGetResponses, GetJobApiJobsJobIdGetData, GetJobApiJobsJobIdGetErrors, GetJobApiJobsJobIdGetResponses, GetJobsApiJobsGetData, GetJobsApiJobsGetResponses, GetMediaFileMediaFilenameGetData, GetMediaFileMediaFilenameGetErrors, GetMediaFileMediaFilenameGetResponses, GetOnboardingBffAccountOnboardingGetData, GetOnboardingBffAccountOnboardingGetResponses, GetPackApiAdminPacksPackIdGetData, GetPackApiAdminPacksPackIdGetErrors, GetPackApiAdminPacksPackIdGetResponses, GetPackApiPacksPackIdGetData, GetPackApiPacksPackIdGetErrors, GetPackApiPacksPackIdGetResponses, GetUserProfileBffUserProfileGetData, GetUserProfileBffUserProfileGetResponses, HealthHealthGetData, HealthHealthGetResponses, ListArticlesBffArticlesGetData, ListArticlesBffArticlesGetErrors, ListArticlesBffArticlesGetResponses, ListEntriesApiVocabGetData, ListEntriesApiVocabGetErrors, ListEntriesApiVocabGetResponses, ListFlashcardsApiFlashcardsGetData, ListFlashcardsApiFlashcardsGetResponses, ListPacksApiAdminPacksGetData, ListPacksApiAdminPacksGetErrors, ListPacksApiAdminPacksGetResponses, ListPacksApiPacksGetData, ListPacksApiPacksGetErrors, ListPacksApiPacksGetResponses, ListPacksForSelectionBffPacksGetData, ListPacksForSelectionBffPacksGetErrors, ListPacksForSelectionBffPacksGetResponses, LoginApiAuthLoginPostData, LoginApiAuthLoginPostErrors, LoginApiAuthLoginPostResponses, PendingDisambiguationApiVocabPendingDisambiguationGetData, PendingDisambiguationApiVocabPendingDisambiguationGetResponses, PublishPackApiAdminPacksPackIdPublishPostData, PublishPackApiAdminPacksPackIdPublishPostErrors, PublishPackApiAdminPacksPackIdPublishPostResponses, RecordEventApiFlashcardsFlashcardIdEventsPostData, RecordEventApiFlashcardsFlashcardIdEventsPostErrors, RecordEventApiFlashcardsFlashcardIdEventsPostResponses, RegenerateAudioApiJobsJobIdRegenerateAudioPostData, RegenerateAudioApiJobsJobIdRegenerateAudioPostErrors, RegenerateAudioApiJobsJobIdRegenerateAudioPostResponses, RegisterApiAuthRegisterPostData, RegisterApiAuthRegisterPostErrors, RegisterApiAuthRegisterPostResponses, RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteData, RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteErrors, RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteResponses, RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteData, RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteErrors, RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteResponses, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteData, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteErrors, RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponses, ResolveSenseApiVocabEntryIdSensePatchData, ResolveSenseApiVocabEntryIdSensePatchErrors, ResolveSenseApiVocabEntryIdSensePatchResponses, SearchWordformsApiDictionaryWordformsGetData, SearchWordformsApiDictionaryWordformsGetErrors, SearchWordformsApiDictionaryWordformsGetResponses, TranslateTextApiTranslateGetData, TranslateTextApiTranslateGetErrors, TranslateTextApiTranslateGetResponses, UpdatePackApiAdminPacksPackIdPatchData, UpdatePackApiAdminPacksPackIdPatchErrors, UpdatePackApiAdminPacksPackIdPatchResponses, UpsertLearnableLanguageApiLearnableLanguagesPostData, UpsertLearnableLanguageApiLearnableLanguagesPostErrors, UpsertLearnableLanguageApiLearnableLanguagesPostResponses, VerifyEmailApiAuthVerifyEmailGetData, VerifyEmailApiAuthVerifyEmailGetErrors, VerifyEmailApiAuthVerifyEmailGetResponses } from './types.gen'; export type Options = Options2 & { /** @@ -91,6 +91,20 @@ export const removeLearnableLanguageApiAccountLearnableLanguagesLanguageIdDelete ...options }); +/** + * Search Wordforms + * + * Search for a wordform by surface text within a language. + * + * Returns one entry per matching lemma, each with the lemma's senses. A single + * form (e.g. "allons") may resolve to more than one lemma when homographs exist. + */ +export const searchWordformsApiDictionaryWordformsGet = (options: Options) => (options.client ?? client).get({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/dictionary/wordforms', + ...options +}); + /** * Generate Flashcards */ @@ -258,6 +272,134 @@ export const resolveSenseApiVocabEntryIdSensePatch = (options?: Options) => (options?.client ?? client).get({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/packs', + ...options +}); + +/** + * Get Pack + */ +export const getPackApiPacksPackIdGet = (options: Options) => (options.client ?? client).get({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/packs/{pack_id}', + ...options +}); + +/** + * Add Pack To Bank + */ +export const addPackToBankApiPacksPackIdAddToBankPost = (options: Options) => (options.client ?? client).post({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/packs/{pack_id}/add-to-bank', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } +}); + +/** + * List Packs + */ +export const listPacksApiAdminPacksGet = (options?: Options) => (options?.client ?? client).get({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs', + ...options +}); + +/** + * Create Pack + */ +export const createPackApiAdminPacksPost = (options: Options) => (options.client ?? client).post({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } +}); + +/** + * Get Pack + */ +export const getPackApiAdminPacksPackIdGet = (options: Options) => (options.client ?? client).get({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs/{pack_id}', + ...options +}); + +/** + * Update Pack + */ +export const updatePackApiAdminPacksPackIdPatch = (options: Options) => (options.client ?? client).patch({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs/{pack_id}', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } +}); + +/** + * Publish Pack + */ +export const publishPackApiAdminPacksPackIdPublishPost = (options: Options) => (options.client ?? client).post({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs/{pack_id}/publish', + ...options +}); + +/** + * Add Entry + */ +export const addEntryApiAdminPacksPackIdEntriesPost = (options: Options) => (options.client ?? client).post({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs/{pack_id}/entries', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } +}); + +/** + * Remove Entry + */ +export const removeEntryApiAdminPacksPackIdEntriesEntryIdDelete = (options: Options) => (options.client ?? client).delete({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs/{pack_id}/entries/{entry_id}', + ...options +}); + +/** + * Add Flashcard Template + */ +export const addFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPost = (options: Options) => (options.client ?? client).post({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs/{pack_id}/entries/{entry_id}/flashcards', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } +}); + +/** + * Remove Flashcard Template + */ +export const removeFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDelete = (options: Options) => (options.client ?? client).delete({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/api/admin/packs/{pack_id}/entries/{entry_id}/flashcards/{template_id}', + ...options +}); + /** * Get Account */ @@ -303,6 +445,15 @@ export const getUserProfileBffUserProfileGet = (options: Options) => (options.client ?? client).get({ + security: [{ scheme: 'bearer', type: 'http' }], + url: '/bff/packs', + ...options +}); + /** * Get Media File */ diff --git a/frontend/src/client/types.gen.ts b/frontend/src/client/types.gen.ts index 49f6231..588c89e 100644 --- a/frontend/src/client/types.gen.ts +++ b/frontend/src/client/types.gen.ts @@ -58,6 +58,46 @@ export type AccountStatusResponse = { error_messages: Array; }; +/** + * AddEntryRequest + */ +export type AddEntryRequest = { + /** + * Sense Id + */ + sense_id?: string | null; + /** + * Surface Text + */ + surface_text: string; +}; + +/** + * AddFlashcardTemplateRequest + */ +export type AddFlashcardTemplateRequest = { + /** + * Card Direction + */ + card_direction: string; + /** + * Prompt Text + */ + prompt_text: string; + /** + * Answer Text + */ + answer_text: string; + /** + * Prompt Context Text + */ + prompt_context_text?: string | null; + /** + * Answer Context Text + */ + answer_context_text?: string | null; +}; + /** * AddFromTokenRequest */ @@ -106,6 +146,30 @@ export type AddLearnableLanguageRequest = { proficiencies: Array; }; +/** + * AddTobankRequest + */ +export type AddTobankRequest = { + /** + * Source Lang + */ + source_lang: string; + /** + * Target Lang + */ + target_lang: string; +}; + +/** + * AddTobankResponse + */ +export type AddTobankResponse = { + /** + * Added + */ + added: Array; +}; + /** * AddWordRequest */ @@ -240,6 +304,40 @@ export type ArticleListResponse = { articles: Array; }; +/** + * CreatePackRequest + */ +export type CreatePackRequest = { + /** + * Name + */ + name: string; + /** + * Name Target + */ + name_target: string; + /** + * Description + */ + description: string; + /** + * Description Target + */ + description_target: string; + /** + * Source Lang + */ + source_lang: string; + /** + * Target Lang + */ + target_lang: string; + /** + * Proficiencies + */ + proficiencies?: Array; +}; + /** * FlashcardEventResponse */ @@ -324,6 +422,44 @@ export type FlashcardResponse = { created_at: string; }; +/** + * FlashcardTemplateResponse + */ +export type FlashcardTemplateResponse = { + /** + * Id + */ + id: string; + /** + * Pack Entry Id + */ + pack_entry_id: string; + /** + * Card Direction + */ + card_direction: string; + /** + * Prompt Text + */ + prompt_text: string; + /** + * Answer Text + */ + answer_text: string; + /** + * Prompt Context Text + */ + prompt_context_text: string | null; + /** + * Answer Context Text + */ + answer_context_text: string | null; + /** + * Created At + */ + created_at: string; +}; + /** * FromTokenResponse */ @@ -541,6 +677,40 @@ export type LearnableLanguageResponse = { proficiencies: Array; }; +/** + * LemmaResponse + */ +export type LemmaResponse = { + /** + * Id + */ + id: string; + /** + * Headword + */ + headword: string; + /** + * Language + */ + language: string; + /** + * Pos Raw + */ + pos_raw: string; + /** + * Pos Normalised + */ + pos_normalised: string | null; + /** + * Gender + */ + gender: string | null; + /** + * Tags + */ + tags: Array; +}; + /** * LoginRequest */ @@ -615,6 +785,170 @@ export type PosResponse = { tokens: Array; }; +/** + * PackEntryResponse + */ +export type PackEntryResponse = { + /** + * Id + */ + id: string; + /** + * Pack Id + */ + pack_id: string; + /** + * Sense Id + */ + sense_id: string | null; + /** + * Surface Text + */ + surface_text: string; + /** + * Created At + */ + created_at: string; + /** + * Flashcard Templates + */ + flashcard_templates?: Array; +}; + +/** + * PackResponse + */ +export type PackResponse = { + /** + * Id + */ + id: string; + /** + * Name + */ + name: string; + /** + * Name Target + */ + name_target: string; + /** + * Description + */ + description: string; + /** + * Description Target + */ + description_target: string; + /** + * Source Lang + */ + source_lang: string; + /** + * Target Lang + */ + target_lang: string; + /** + * Proficiencies + */ + proficiencies: Array; + /** + * Is Published + */ + is_published: boolean; + /** + * Created At + */ + created_at: string; +}; + +/** + * PackSelectionItem + */ +export type PackSelectionItem = { + /** + * Id + */ + id: string; + /** + * Name + */ + name: string; + /** + * Name Target + */ + name_target: string; + /** + * Description + */ + description: string; + /** + * Description Target + */ + description_target: string; + /** + * Source Lang + */ + source_lang: string; + /** + * Target Lang + */ + target_lang: string; + /** + * Proficiencies + */ + proficiencies: Array; + /** + * Entry Count + */ + entry_count: number; + /** + * Already Added + */ + already_added: boolean; +}; + +/** + * PackSummaryResponse + */ +export type PackSummaryResponse = { + /** + * Id + */ + id: string; + /** + * Name + */ + name: string; + /** + * Name Target + */ + name_target: string; + /** + * Description + */ + description: string; + /** + * Description Target + */ + description_target: string; + /** + * Source Lang + */ + source_lang: string; + /** + * Target Lang + */ + target_lang: string; + /** + * Proficiencies + */ + proficiencies: Array; + /** + * Entry Count + */ + entry_count: number; +}; + /** * ProficiencyOption */ @@ -697,6 +1031,32 @@ export type SenseCandidateResponse = { tags: Array; }; +/** + * SenseResponse + */ +export type SenseResponse = { + /** + * Id + */ + id: string; + /** + * Sense Index + */ + sense_index: number; + /** + * Gloss + */ + gloss: string; + /** + * Topics + */ + topics: Array; + /** + * Tags + */ + tags: Array; +}; + /** * SetSenseRequest */ @@ -769,6 +1129,32 @@ export type TranslationResponse = { translated_text: string; }; +/** + * UpdatePackRequest + */ +export type UpdatePackRequest = { + /** + * Name + */ + name?: string | null; + /** + * Name Target + */ + name_target?: string | null; + /** + * Description + */ + description?: string | null; + /** + * Description Target + */ + description_target?: string | null; + /** + * Proficiencies + */ + proficiencies?: Array | null; +}; + /** * UserProfileResponse */ @@ -857,6 +1243,113 @@ export type WordBankEntryResponse = { created_at: string; }; +/** + * WordformMatch + */ +export type WordformMatch = { + lemma: LemmaResponse; + /** + * Senses + */ + senses: Array; +}; + +/** + * PackDetailResponse + */ +export type AppRoutersApiAdminPacksPackDetailResponse = { + /** + * Id + */ + id: string; + /** + * Name + */ + name: string; + /** + * Name Target + */ + name_target: string; + /** + * Description + */ + description: string; + /** + * Description Target + */ + description_target: string; + /** + * Source Lang + */ + source_lang: string; + /** + * Target Lang + */ + target_lang: string; + /** + * Proficiencies + */ + proficiencies: Array; + /** + * Is Published + */ + is_published: boolean; + /** + * Created At + */ + created_at: string; + /** + * Entries + */ + entries?: Array; +}; + +/** + * PackDetailResponse + */ +export type AppRoutersApiPacksPackDetailResponse = { + /** + * Id + */ + id: string; + /** + * Name + */ + name: string; + /** + * Name Target + */ + name_target: string; + /** + * Description + */ + description: string; + /** + * Description Target + */ + description_target: string; + /** + * Source Lang + */ + source_lang: string; + /** + * Target Lang + */ + target_lang: string; + /** + * Proficiencies + */ + proficiencies: Array; + /** + * Entry Count + */ + entry_count: number; + /** + * Surface Texts + */ + surface_texts: Array; +}; + export type RegisterApiAuthRegisterPostData = { body: RegisterRequest; path?: never; @@ -1041,6 +1534,42 @@ export type RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteR export type RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponse = RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponses[keyof RemoveLearnableLanguageApiAccountLearnableLanguagesLanguageIdDeleteResponses]; +export type SearchWordformsApiDictionaryWordformsGetData = { + body?: never; + path?: never; + query: { + /** + * Lang Code + */ + lang_code: string; + /** + * Text + */ + text: string; + }; + url: '/api/dictionary/wordforms'; +}; + +export type SearchWordformsApiDictionaryWordformsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type SearchWordformsApiDictionaryWordformsGetError = SearchWordformsApiDictionaryWordformsGetErrors[keyof SearchWordformsApiDictionaryWordformsGetErrors]; + +export type SearchWordformsApiDictionaryWordformsGetResponses = { + /** + * Response Search Wordforms Api Dictionary Wordforms Get + * + * Successful Response + */ + 200: Array; +}; + +export type SearchWordformsApiDictionaryWordformsGetResponse = SearchWordformsApiDictionaryWordformsGetResponses[keyof SearchWordformsApiDictionaryWordformsGetResponses]; + export type GenerateFlashcardsApiVocabEntryIdFlashcardsPostData = { body: GenerateFlashcardsRequest; path: { @@ -1444,6 +1973,389 @@ export type ResolveSenseApiVocabEntryIdSensePatchResponses = { export type ResolveSenseApiVocabEntryIdSensePatchResponse = ResolveSenseApiVocabEntryIdSensePatchResponses[keyof ResolveSenseApiVocabEntryIdSensePatchResponses]; +export type ListPacksApiPacksGetData = { + body?: never; + path?: never; + query?: { + /** + * Source Lang + */ + source_lang?: string | null; + /** + * Target Lang + */ + target_lang?: string | null; + }; + url: '/api/packs'; +}; + +export type ListPacksApiPacksGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ListPacksApiPacksGetError = ListPacksApiPacksGetErrors[keyof ListPacksApiPacksGetErrors]; + +export type ListPacksApiPacksGetResponses = { + /** + * Response List Packs Api Packs Get + * + * Successful Response + */ + 200: Array; +}; + +export type ListPacksApiPacksGetResponse = ListPacksApiPacksGetResponses[keyof ListPacksApiPacksGetResponses]; + +export type GetPackApiPacksPackIdGetData = { + body?: never; + path: { + /** + * Pack Id + */ + pack_id: string; + }; + query?: never; + url: '/api/packs/{pack_id}'; +}; + +export type GetPackApiPacksPackIdGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetPackApiPacksPackIdGetError = GetPackApiPacksPackIdGetErrors[keyof GetPackApiPacksPackIdGetErrors]; + +export type GetPackApiPacksPackIdGetResponses = { + /** + * Successful Response + */ + 200: AppRoutersApiPacksPackDetailResponse; +}; + +export type GetPackApiPacksPackIdGetResponse = GetPackApiPacksPackIdGetResponses[keyof GetPackApiPacksPackIdGetResponses]; + +export type AddPackToBankApiPacksPackIdAddToBankPostData = { + body: AddTobankRequest; + path: { + /** + * Pack Id + */ + pack_id: string; + }; + query?: never; + url: '/api/packs/{pack_id}/add-to-bank'; +}; + +export type AddPackToBankApiPacksPackIdAddToBankPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type AddPackToBankApiPacksPackIdAddToBankPostError = AddPackToBankApiPacksPackIdAddToBankPostErrors[keyof AddPackToBankApiPacksPackIdAddToBankPostErrors]; + +export type AddPackToBankApiPacksPackIdAddToBankPostResponses = { + /** + * Successful Response + */ + 201: AddTobankResponse; +}; + +export type AddPackToBankApiPacksPackIdAddToBankPostResponse = AddPackToBankApiPacksPackIdAddToBankPostResponses[keyof AddPackToBankApiPacksPackIdAddToBankPostResponses]; + +export type ListPacksApiAdminPacksGetData = { + body?: never; + path?: never; + query?: { + /** + * Source Lang + */ + source_lang?: string | null; + /** + * Target Lang + */ + target_lang?: string | null; + }; + url: '/api/admin/packs'; +}; + +export type ListPacksApiAdminPacksGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ListPacksApiAdminPacksGetError = ListPacksApiAdminPacksGetErrors[keyof ListPacksApiAdminPacksGetErrors]; + +export type ListPacksApiAdminPacksGetResponses = { + /** + * Response List Packs Api Admin Packs Get + * + * Successful Response + */ + 200: Array; +}; + +export type ListPacksApiAdminPacksGetResponse = ListPacksApiAdminPacksGetResponses[keyof ListPacksApiAdminPacksGetResponses]; + +export type CreatePackApiAdminPacksPostData = { + body: CreatePackRequest; + path?: never; + query?: never; + url: '/api/admin/packs'; +}; + +export type CreatePackApiAdminPacksPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type CreatePackApiAdminPacksPostError = CreatePackApiAdminPacksPostErrors[keyof CreatePackApiAdminPacksPostErrors]; + +export type CreatePackApiAdminPacksPostResponses = { + /** + * Successful Response + */ + 201: PackResponse; +}; + +export type CreatePackApiAdminPacksPostResponse = CreatePackApiAdminPacksPostResponses[keyof CreatePackApiAdminPacksPostResponses]; + +export type GetPackApiAdminPacksPackIdGetData = { + body?: never; + path: { + /** + * Pack Id + */ + pack_id: string; + }; + query?: never; + url: '/api/admin/packs/{pack_id}'; +}; + +export type GetPackApiAdminPacksPackIdGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetPackApiAdminPacksPackIdGetError = GetPackApiAdminPacksPackIdGetErrors[keyof GetPackApiAdminPacksPackIdGetErrors]; + +export type GetPackApiAdminPacksPackIdGetResponses = { + /** + * Successful Response + */ + 200: AppRoutersApiAdminPacksPackDetailResponse; +}; + +export type GetPackApiAdminPacksPackIdGetResponse = GetPackApiAdminPacksPackIdGetResponses[keyof GetPackApiAdminPacksPackIdGetResponses]; + +export type UpdatePackApiAdminPacksPackIdPatchData = { + body: UpdatePackRequest; + path: { + /** + * Pack Id + */ + pack_id: string; + }; + query?: never; + url: '/api/admin/packs/{pack_id}'; +}; + +export type UpdatePackApiAdminPacksPackIdPatchErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UpdatePackApiAdminPacksPackIdPatchError = UpdatePackApiAdminPacksPackIdPatchErrors[keyof UpdatePackApiAdminPacksPackIdPatchErrors]; + +export type UpdatePackApiAdminPacksPackIdPatchResponses = { + /** + * Successful Response + */ + 200: PackResponse; +}; + +export type UpdatePackApiAdminPacksPackIdPatchResponse = UpdatePackApiAdminPacksPackIdPatchResponses[keyof UpdatePackApiAdminPacksPackIdPatchResponses]; + +export type PublishPackApiAdminPacksPackIdPublishPostData = { + body?: never; + path: { + /** + * Pack Id + */ + pack_id: string; + }; + query?: never; + url: '/api/admin/packs/{pack_id}/publish'; +}; + +export type PublishPackApiAdminPacksPackIdPublishPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type PublishPackApiAdminPacksPackIdPublishPostError = PublishPackApiAdminPacksPackIdPublishPostErrors[keyof PublishPackApiAdminPacksPackIdPublishPostErrors]; + +export type PublishPackApiAdminPacksPackIdPublishPostResponses = { + /** + * Successful Response + */ + 200: PackResponse; +}; + +export type PublishPackApiAdminPacksPackIdPublishPostResponse = PublishPackApiAdminPacksPackIdPublishPostResponses[keyof PublishPackApiAdminPacksPackIdPublishPostResponses]; + +export type AddEntryApiAdminPacksPackIdEntriesPostData = { + body: AddEntryRequest; + path: { + /** + * Pack Id + */ + pack_id: string; + }; + query?: never; + url: '/api/admin/packs/{pack_id}/entries'; +}; + +export type AddEntryApiAdminPacksPackIdEntriesPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type AddEntryApiAdminPacksPackIdEntriesPostError = AddEntryApiAdminPacksPackIdEntriesPostErrors[keyof AddEntryApiAdminPacksPackIdEntriesPostErrors]; + +export type AddEntryApiAdminPacksPackIdEntriesPostResponses = { + /** + * Successful Response + */ + 201: PackEntryResponse; +}; + +export type AddEntryApiAdminPacksPackIdEntriesPostResponse = AddEntryApiAdminPacksPackIdEntriesPostResponses[keyof AddEntryApiAdminPacksPackIdEntriesPostResponses]; + +export type RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteData = { + body?: never; + path: { + /** + * Pack Id + */ + pack_id: string; + /** + * Entry Id + */ + entry_id: string; + }; + query?: never; + url: '/api/admin/packs/{pack_id}/entries/{entry_id}'; +}; + +export type RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteError = RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteErrors[keyof RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteErrors]; + +export type RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteResponses = { + /** + * Successful Response + */ + 204: void; +}; + +export type RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteResponse = RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteResponses[keyof RemoveEntryApiAdminPacksPackIdEntriesEntryIdDeleteResponses]; + +export type AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostData = { + body: AddFlashcardTemplateRequest; + path: { + /** + * Pack Id + */ + pack_id: string; + /** + * Entry Id + */ + entry_id: string; + }; + query?: never; + url: '/api/admin/packs/{pack_id}/entries/{entry_id}/flashcards'; +}; + +export type AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostError = AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostErrors[keyof AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostErrors]; + +export type AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostResponses = { + /** + * Successful Response + */ + 201: FlashcardTemplateResponse; +}; + +export type AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostResponse = AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostResponses[keyof AddFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsPostResponses]; + +export type RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteData = { + body?: never; + path: { + /** + * Pack Id + */ + pack_id: string; + /** + * Entry Id + */ + entry_id: string; + /** + * Template Id + */ + template_id: string; + }; + query?: never; + url: '/api/admin/packs/{pack_id}/entries/{entry_id}/flashcards/{template_id}'; +}; + +export type RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteError = RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteErrors[keyof RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteErrors]; + +export type RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteResponses = { + /** + * Successful Response + */ + 204: void; +}; + +export type RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteResponse = RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteResponses[keyof RemoveFlashcardTemplateApiAdminPacksPackIdEntriesEntryIdFlashcardsTemplateIdDeleteResponses]; + export type GetAccountBffAccountGetData = { body?: never; path?: never; @@ -1552,6 +2464,42 @@ export type GetUserProfileBffUserProfileGetResponses = { export type GetUserProfileBffUserProfileGetResponse = GetUserProfileBffUserProfileGetResponses[keyof GetUserProfileBffUserProfileGetResponses]; +export type ListPacksForSelectionBffPacksGetData = { + body?: never; + path?: never; + query: { + /** + * Source Lang + */ + source_lang: string; + /** + * Target Lang + */ + target_lang: string; + }; + url: '/bff/packs'; +}; + +export type ListPacksForSelectionBffPacksGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ListPacksForSelectionBffPacksGetError = ListPacksForSelectionBffPacksGetErrors[keyof ListPacksForSelectionBffPacksGetErrors]; + +export type ListPacksForSelectionBffPacksGetResponses = { + /** + * Response List Packs For Selection Bff Packs Get + * + * Successful Response + */ + 200: Array; +}; + +export type ListPacksForSelectionBffPacksGetResponse = ListPacksForSelectionBffPacksGetResponses[keyof ListPacksForSelectionBffPacksGetResponses]; + export type GetMediaFileMediaFilenameGetData = { body?: never; path: { diff --git a/frontend/src/lib/openapi.json b/frontend/src/lib/openapi.json index a6c968a..11595fa 100644 --- a/frontend/src/lib/openapi.json +++ b/frontend/src/lib/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Language Learning API","version":"0.1.0"},"paths":{"/api/auth/register":{"post":{"tags":["api","auth"],"summary":"Register","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"tags":["api","auth"],"summary":"Login","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/verify-email":{"get":{"tags":["api","auth"],"summary":"Verify Email","operationId":"verify_email_api_auth_verify_email_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Verify Email Api Auth Verify Email Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/account/learnable-languages":{"post":{"tags":["api","account"],"summary":"Add Learnable Language","operationId":"add_learnable_language_api_account_learnable_languages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddLearnableLanguageRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearnableLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/account/onboarding":{"post":{"tags":["api","account"],"summary":"Complete Onboarding","operationId":"complete_onboarding_api_account_onboarding_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Complete Onboarding Api Account Onboarding Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/account/status":{"get":{"tags":["api","account"],"summary":"Get Account Status","operationId":"get_account_status_api_account_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/account/learnable-languages/{language_id}":{"delete":{"tags":["api","account"],"summary":"Remove Learnable Language","operationId":"remove_learnable_language_api_account_learnable_languages__language_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"language_id","in":"path","required":true,"schema":{"type":"string","title":"Language Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vocab/{entry_id}/flashcards":{"post":{"tags":["api","flashcards"],"summary":"Generate Flashcards","operationId":"generate_flashcards_api_vocab__entry_id__flashcards_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateFlashcardsRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FlashcardResponse"},"title":"Response Generate Flashcards Api Vocab Entry Id Flashcards Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/flashcards":{"get":{"tags":["api","flashcards"],"summary":"List Flashcards","operationId":"list_flashcards_api_flashcards_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FlashcardResponse"},"type":"array","title":"Response List Flashcards Api Flashcards Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/flashcards/{flashcard_id}/events":{"post":{"tags":["api","flashcards"],"summary":"Record Event","operationId":"record_event_api_flashcards__flashcard_id__events_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flashcard_id","in":"path","required":true,"schema":{"type":"string","title":"Flashcard Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordEventRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlashcardEventResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pos/":{"post":{"tags":["api","api","pos"],"summary":"Analyze Pos","operationId":"analyze_pos_api_pos__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/POSRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/POSResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/translate":{"get":{"tags":["api","api","translate"],"summary":"Translate text to a target language","operationId":"translate_text_api_translate_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","title":"Text"}},{"name":"target_language","in":"query","required":true,"schema":{"type":"string","title":"Target Language"}},{"name":"context","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate":{"post":{"tags":["api","api"],"summary":"Create Generation Job","operationId":"create_generation_job_api_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/jobs/":{"get":{"tags":["api"],"summary":"Get Jobs","operationId":"get_jobs_api_jobs__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/jobs/{job_id}":{"get":{"tags":["api"],"summary":"Get Job","operationId":"get_job_api_jobs__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/{job_id}/regenerate-audio":{"post":{"tags":["api"],"summary":"Regenerate Audio","operationId":"regenerate_audio_api_jobs__job_id__regenerate_audio_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Regenerate Audio Api Jobs Job Id Regenerate Audio Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/learnable_languages":{"post":{"tags":["api","api"],"summary":"Upsert Learnable Language","operationId":"upsert_learnable_language_api_learnable_languages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearnableLanguageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearnableLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vocab":{"post":{"tags":["api","vocab"],"summary":"Add Word","operationId":"add_word_api_vocab_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWordRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WordBankEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["api","vocab"],"summary":"List Entries","operationId":"list_entries_api_vocab_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"language_pair_id","in":"query","required":true,"schema":{"type":"string","title":"Language Pair Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WordBankEntryResponse"},"title":"Response List Entries Api Vocab Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vocab/from-token":{"post":{"tags":["api","vocab"],"summary":"Add From Token","operationId":"add_from_token_api_vocab_from_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFromTokenRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FromTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vocab/pending-disambiguation":{"get":{"tags":["api","vocab"],"summary":"Pending Disambiguation","operationId":"pending_disambiguation_api_vocab_pending_disambiguation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WordBankEntryResponse"},"type":"array","title":"Response Pending Disambiguation Api Vocab Pending Disambiguation Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vocab/{entry_id}/sense":{"patch":{"tags":["api","vocab"],"summary":"Resolve Sense","operationId":"resolve_sense_api_vocab__entry_id__sense_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetSenseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WordBankEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bff/account":{"get":{"tags":["bff","bff"],"summary":"Get Account","operationId":"get_account_bff_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/bff/account/onboarding":{"get":{"tags":["bff","bff"],"summary":"Get Onboarding","operationId":"get_onboarding_bff_account_onboarding_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/bff/articles":{"get":{"tags":["bff","bff","articles"],"summary":"List Articles","operationId":"list_articles_bff_articles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_language","in":"query","required":false,"schema":{"type":"string","default":"fr","title":"Target Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bff/articles/{article_id}":{"get":{"tags":["bff","bff","articles"],"summary":"Get Article","operationId":"get_article_bff_articles__article_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"article_id","in":"path","required":true,"schema":{"type":"string","title":"Article Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bff/user_profile":{"get":{"tags":["bff","bff"],"summary":"Get User Profile","operationId":"get_user_profile_bff_user_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/media/{filename}":{"get":{"tags":["media"],"summary":"Get Media File","operationId":"get_media_file_media__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}}},"components":{"schemas":{"AccountLanguagePair":{"properties":{"id":{"type":"string","title":"Id"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["id","source_language","target_language","proficiencies"],"title":"AccountLanguagePair"},"AccountResponse":{"properties":{"email":{"type":"string","title":"Email"},"human_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Name"},"language_pairs":{"items":{"$ref":"#/components/schemas/AccountLanguagePair"},"type":"array","title":"Language Pairs"}},"type":"object","required":["email","human_name","language_pairs"],"title":"AccountResponse"},"AccountStatusResponse":{"properties":{"problem_flags":{"items":{"type":"string"},"type":"array","title":"Problem Flags"},"error_messages":{"items":{"type":"string"},"type":"array","title":"Error Messages"}},"type":"object","required":["problem_flags","error_messages"],"title":"AccountStatusResponse"},"AddFromTokenRequest":{"properties":{"language_pair_id":{"type":"string","title":"Language Pair Id"},"surface":{"type":"string","title":"Surface"},"spacy_lemma":{"type":"string","title":"Spacy Lemma"},"pos_ud":{"type":"string","title":"Pos Ud"},"language":{"type":"string","title":"Language"},"source_article_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Article Id"}},"type":"object","required":["language_pair_id","surface","spacy_lemma","pos_ud","language"],"title":"AddFromTokenRequest"},"AddLearnableLanguageRequest":{"properties":{"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["source_language","target_language","proficiencies"],"title":"AddLearnableLanguageRequest"},"AddWordRequest":{"properties":{"language_pair_id":{"type":"string","title":"Language Pair Id"},"surface_text":{"type":"string","title":"Surface Text"},"entry_pathway":{"type":"string","title":"Entry Pathway","default":"manual"},"is_phrase":{"type":"boolean","title":"Is Phrase","default":false},"source_article_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Article Id"}},"type":"object","required":["language_pair_id","surface_text"],"title":"AddWordRequest"},"ArticleDetail":{"properties":{"id":{"type":"string","title":"Id"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"source_language":{"type":"string","title":"Source Language"},"source_title":{"type":"string","title":"Source Title"},"source_body":{"type":"string","title":"Source Body"},"source_body_pos":{"additionalProperties":true,"type":"object","title":"Source Body Pos"},"target_language":{"type":"string","title":"Target Language"},"target_complexities":{"items":{"type":"string"},"type":"array","title":"Target Complexities"},"target_title":{"type":"string","title":"Target Title"},"target_body":{"type":"string","title":"Target Body"},"target_audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Audio Url"},"target_body_pos":{"additionalProperties":true,"type":"object","title":"Target Body Pos"},"target_body_transcript":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Target Body Transcript"}},"type":"object","required":["id","published_at","source_language","source_title","source_body","source_body_pos","target_language","target_complexities","target_title","target_body","target_audio_url","target_body_pos","target_body_transcript"],"title":"ArticleDetail"},"ArticleItem":{"properties":{"id":{"type":"string","title":"Id"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"source_language":{"type":"string","title":"Source Language"},"source_title":{"type":"string","title":"Source Title"},"target_language":{"type":"string","title":"Target Language"},"target_complexities":{"items":{"type":"string"},"type":"array","title":"Target Complexities"},"target_title":{"type":"string","title":"Target Title"}},"type":"object","required":["id","published_at","source_language","source_title","target_language","target_complexities","target_title"],"title":"ArticleItem"},"ArticleListResponse":{"properties":{"articles":{"items":{"$ref":"#/components/schemas/ArticleItem"},"type":"array","title":"Articles"}},"type":"object","required":["articles"],"title":"ArticleListResponse"},"FlashcardEventResponse":{"properties":{"id":{"type":"string","title":"Id"},"flashcard_id":{"type":"string","title":"Flashcard Id"},"user_id":{"type":"string","title":"User Id"},"event_type":{"type":"string","title":"Event Type"},"user_response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Response"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","flashcard_id","user_id","event_type","user_response","created_at"],"title":"FlashcardEventResponse"},"FlashcardResponse":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"bank_entry_id":{"type":"string","title":"Bank Entry Id"},"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"},"prompt_text":{"type":"string","title":"Prompt Text"},"answer_text":{"type":"string","title":"Answer Text"},"prompt_context_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Context Text"},"answer_context_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer Context Text"},"card_direction":{"type":"string","title":"Card Direction"},"prompt_modality":{"type":"string","title":"Prompt Modality"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","user_id","bank_entry_id","source_lang","target_lang","prompt_text","answer_text","prompt_context_text","answer_context_text","card_direction","prompt_modality","created_at"],"title":"FlashcardResponse"},"FromTokenResponse":{"properties":{"entry":{"$ref":"#/components/schemas/WordBankEntryResponse"},"sense_candidates":{"items":{"$ref":"#/components/schemas/SenseCandidateResponse"},"type":"array","title":"Sense Candidates"},"matched_via":{"type":"string","title":"Matched Via"}},"type":"object","required":["entry","sense_candidates","matched_via"],"title":"FromTokenResponse"},"GenerateFlashcardsRequest":{"properties":{"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},"type":"object","title":"GenerateFlashcardsRequest"},"GenerationRequest":{"properties":{"target_language":{"type":"string","title":"Target Language"},"complexity_level":{"type":"string","title":"Complexity Level"},"input_texts":{"items":{"type":"string"},"type":"array","title":"Input Texts"},"source_language":{"type":"string","title":"Source Language","default":"en"}},"type":"object","required":["target_language","complexity_level","input_texts"],"title":"GenerationRequest"},"GenerationResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"}},"type":"object","required":["job_id"],"title":"GenerationResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobListResponse":{"properties":{"jobs":{"items":{"$ref":"#/components/schemas/JobSummary"},"type":"array","title":"Jobs"}},"type":"object","required":["jobs"],"title":"JobListResponse"},"JobResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"translated_article_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Translated Article Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","status","created_at"],"title":"JobResponse"},"JobSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","status","created_at"],"title":"JobSummary"},"LanguagePairOption":{"properties":{"value":{"type":"string","title":"Value"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"}},"type":"object","required":["value","label","description"],"title":"LanguagePairOption"},"LearnableLanguageItem":{"properties":{"id":{"type":"string","title":"Id"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["id","source_language","target_language","proficiencies"],"title":"LearnableLanguageItem"},"LearnableLanguageRequest":{"properties":{"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["source_language","target_language","proficiencies"],"title":"LearnableLanguageRequest"},"LearnableLanguageResponse":{"properties":{"id":{"type":"string","title":"Id"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["id","source_language","target_language","proficiencies"],"title":"LearnableLanguageResponse"},"LoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"OnboardingRequest":{"properties":{"human_name":{"type":"string","title":"Human Name"},"language_pairs":{"items":{"type":"string"},"type":"array","title":"Language Pairs"},"proficiencies":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Proficiencies"}},"type":"object","required":["human_name","language_pairs","proficiencies"],"title":"OnboardingRequest"},"OnboardingResponse":{"properties":{"language_pairs":{"items":{"$ref":"#/components/schemas/LanguagePairOption"},"type":"array","title":"Language Pairs"},"proficiencies":{"items":{"$ref":"#/components/schemas/ProficiencyOption"},"type":"array","title":"Proficiencies"}},"type":"object","required":["language_pairs","proficiencies"],"title":"OnboardingResponse"},"POSRequest":{"properties":{"text":{"type":"string","title":"Text"},"language":{"type":"string","title":"Language"}},"type":"object","required":["text","language"],"title":"POSRequest"},"POSResponse":{"properties":{"language":{"type":"string","title":"Language"},"tokens":{"items":{"$ref":"#/components/schemas/TokenInfo"},"type":"array","title":"Tokens"}},"type":"object","required":["language","tokens"],"title":"POSResponse"},"ProficiencyOption":{"properties":{"value":{"type":"string","title":"Value"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"}},"type":"object","required":["value","label","description"],"title":"ProficiencyOption"},"RecordEventRequest":{"properties":{"event_type":{"type":"string","title":"Event Type"},"user_response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Response"}},"type":"object","required":["event_type"],"title":"RecordEventRequest"},"RegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"RegisterRequest"},"RegisterResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["success"],"title":"RegisterResponse"},"SenseCandidateResponse":{"properties":{"id":{"type":"string","title":"Id"},"gloss":{"type":"string","title":"Gloss"},"topics":{"items":{"type":"string"},"type":"array","title":"Topics"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["id","gloss","topics","tags"],"title":"SenseCandidateResponse"},"SetSenseRequest":{"properties":{"sense_id":{"type":"string","title":"Sense Id"}},"type":"object","required":["sense_id"],"title":"SetSenseRequest"},"TokenInfo":{"properties":{"text":{"type":"string","title":"Text"},"lemma":{"type":"string","title":"Lemma"},"pos":{"type":"string","title":"Pos"},"tag":{"type":"string","title":"Tag"},"dep":{"type":"string","title":"Dep"},"is_stop":{"type":"boolean","title":"Is Stop"}},"type":"object","required":["text","lemma","pos","tag","dep","is_stop"],"title":"TokenInfo"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"}},"type":"object","required":["access_token"],"title":"TokenResponse"},"TranslationResponse":{"properties":{"text":{"type":"string","title":"Text"},"target_language":{"type":"string","title":"Target Language"},"translated_text":{"type":"string","title":"Translated Text"}},"type":"object","required":["text","target_language","translated_text"],"title":"TranslationResponse"},"UserProfileResponse":{"properties":{"learnable_languages":{"items":{"$ref":"#/components/schemas/LearnableLanguageItem"},"type":"array","title":"Learnable Languages"}},"type":"object","required":["learnable_languages"],"title":"UserProfileResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WordBankEntryResponse":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"language_pair_id":{"type":"string","title":"Language Pair Id"},"sense_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sense Id"},"wordform_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wordform Id"},"surface_text":{"type":"string","title":"Surface Text"},"is_phrase":{"type":"boolean","title":"Is Phrase"},"entry_pathway":{"type":"string","title":"Entry Pathway"},"source_article_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Article Id"},"disambiguation_status":{"type":"string","title":"Disambiguation Status"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","user_id","language_pair_id","sense_id","wordform_id","surface_text","is_phrase","entry_pathway","source_article_id","disambiguation_status","created_at"],"title":"WordBankEntryResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} \ No newline at end of file +{"openapi":"3.1.0","info":{"title":"Language Learning API","version":"0.1.0"},"paths":{"/api/auth/register":{"post":{"tags":["api","auth"],"summary":"Register","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"tags":["api","auth"],"summary":"Login","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/verify-email":{"get":{"tags":["api","auth"],"summary":"Verify Email","operationId":"verify_email_api_auth_verify_email_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Verify Email Api Auth Verify Email Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/account/learnable-languages":{"post":{"tags":["api","account"],"summary":"Add Learnable Language","operationId":"add_learnable_language_api_account_learnable_languages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddLearnableLanguageRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearnableLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/account/onboarding":{"post":{"tags":["api","account"],"summary":"Complete Onboarding","operationId":"complete_onboarding_api_account_onboarding_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Complete Onboarding Api Account Onboarding Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/account/status":{"get":{"tags":["api","account"],"summary":"Get Account Status","operationId":"get_account_status_api_account_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/account/learnable-languages/{language_id}":{"delete":{"tags":["api","account"],"summary":"Remove Learnable Language","operationId":"remove_learnable_language_api_account_learnable_languages__language_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"language_id","in":"path","required":true,"schema":{"type":"string","title":"Language Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dictionary/wordforms":{"get":{"tags":["api","dictionary"],"summary":"Search Wordforms","description":"Search for a wordform by surface text within a language.\n\nReturns one entry per matching lemma, each with the lemma's senses. A single\nform (e.g. \"allons\") may resolve to more than one lemma when homographs exist.","operationId":"search_wordforms_api_dictionary_wordforms_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lang_code","in":"query","required":true,"schema":{"type":"string","title":"Lang Code"}},{"name":"text","in":"query","required":true,"schema":{"type":"string","title":"Text"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WordformMatch"},"title":"Response Search Wordforms Api Dictionary Wordforms Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vocab/{entry_id}/flashcards":{"post":{"tags":["api","flashcards"],"summary":"Generate Flashcards","operationId":"generate_flashcards_api_vocab__entry_id__flashcards_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateFlashcardsRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FlashcardResponse"},"title":"Response Generate Flashcards Api Vocab Entry Id Flashcards Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/flashcards":{"get":{"tags":["api","flashcards"],"summary":"List Flashcards","operationId":"list_flashcards_api_flashcards_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FlashcardResponse"},"type":"array","title":"Response List Flashcards Api Flashcards Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/flashcards/{flashcard_id}/events":{"post":{"tags":["api","flashcards"],"summary":"Record Event","operationId":"record_event_api_flashcards__flashcard_id__events_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flashcard_id","in":"path","required":true,"schema":{"type":"string","title":"Flashcard Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordEventRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlashcardEventResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pos/":{"post":{"tags":["api","api","pos"],"summary":"Analyze Pos","operationId":"analyze_pos_api_pos__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/POSRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/POSResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/translate":{"get":{"tags":["api","api","translate"],"summary":"Translate text to a target language","operationId":"translate_text_api_translate_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","title":"Text"}},{"name":"target_language","in":"query","required":true,"schema":{"type":"string","title":"Target Language"}},{"name":"context","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate":{"post":{"tags":["api","api"],"summary":"Create Generation Job","operationId":"create_generation_job_api_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/jobs/":{"get":{"tags":["api"],"summary":"Get Jobs","operationId":"get_jobs_api_jobs__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/jobs/{job_id}":{"get":{"tags":["api"],"summary":"Get Job","operationId":"get_job_api_jobs__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/{job_id}/regenerate-audio":{"post":{"tags":["api"],"summary":"Regenerate Audio","operationId":"regenerate_audio_api_jobs__job_id__regenerate_audio_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Regenerate Audio Api Jobs Job Id Regenerate Audio Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/learnable_languages":{"post":{"tags":["api","api"],"summary":"Upsert Learnable Language","operationId":"upsert_learnable_language_api_learnable_languages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearnableLanguageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearnableLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vocab":{"post":{"tags":["api","vocab"],"summary":"Add Word","operationId":"add_word_api_vocab_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWordRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WordBankEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["api","vocab"],"summary":"List Entries","operationId":"list_entries_api_vocab_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"language_pair_id","in":"query","required":true,"schema":{"type":"string","title":"Language Pair Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WordBankEntryResponse"},"title":"Response List Entries Api Vocab Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vocab/from-token":{"post":{"tags":["api","vocab"],"summary":"Add From Token","operationId":"add_from_token_api_vocab_from_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFromTokenRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FromTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vocab/pending-disambiguation":{"get":{"tags":["api","vocab"],"summary":"Pending Disambiguation","operationId":"pending_disambiguation_api_vocab_pending_disambiguation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WordBankEntryResponse"},"type":"array","title":"Response Pending Disambiguation Api Vocab Pending Disambiguation Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/vocab/{entry_id}/sense":{"patch":{"tags":["api","vocab"],"summary":"Resolve Sense","operationId":"resolve_sense_api_vocab__entry_id__sense_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetSenseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WordBankEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/packs":{"get":{"tags":["api","packs"],"summary":"List Packs","operationId":"list_packs_api_packs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"source_lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Lang"}},{"name":"target_lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PackSummaryResponse"},"title":"Response List Packs Api Packs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/packs/{pack_id}":{"get":{"tags":["api","packs"],"summary":"Get Pack","operationId":"get_pack_api_packs__pack_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routers__api__packs__PackDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/packs/{pack_id}/add-to-bank":{"post":{"tags":["api","packs"],"summary":"Add Pack To Bank","operationId":"add_pack_to_bank_api_packs__pack_id__add_to_bank_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTobankRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTobankResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/packs":{"post":{"tags":["api","admin-packs"],"summary":"Create Pack","operationId":"create_pack_api_admin_packs_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePackRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["api","admin-packs"],"summary":"List Packs","operationId":"list_packs_api_admin_packs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"source_lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Lang"}},{"name":"target_lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PackResponse"},"title":"Response List Packs Api Admin Packs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/packs/{pack_id}":{"get":{"tags":["api","admin-packs"],"summary":"Get Pack","operationId":"get_pack_api_admin_packs__pack_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routers__api__admin__packs__PackDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["api","admin-packs"],"summary":"Update Pack","operationId":"update_pack_api_admin_packs__pack_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/packs/{pack_id}/publish":{"post":{"tags":["api","admin-packs"],"summary":"Publish Pack","operationId":"publish_pack_api_admin_packs__pack_id__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/packs/{pack_id}/entries":{"post":{"tags":["api","admin-packs"],"summary":"Add Entry","operationId":"add_entry_api_admin_packs__pack_id__entries_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddEntryRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/packs/{pack_id}/entries/{entry_id}":{"delete":{"tags":["api","admin-packs"],"summary":"Remove Entry","operationId":"remove_entry_api_admin_packs__pack_id__entries__entry_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/packs/{pack_id}/entries/{entry_id}/flashcards":{"post":{"tags":["api","admin-packs"],"summary":"Add Flashcard Template","operationId":"add_flashcard_template_api_admin_packs__pack_id__entries__entry_id__flashcards_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFlashcardTemplateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlashcardTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/packs/{pack_id}/entries/{entry_id}/flashcards/{template_id}":{"delete":{"tags":["api","admin-packs"],"summary":"Remove Flashcard Template","operationId":"remove_flashcard_template_api_admin_packs__pack_id__entries__entry_id__flashcards__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}},{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bff/account":{"get":{"tags":["bff","bff"],"summary":"Get Account","operationId":"get_account_bff_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/bff/account/onboarding":{"get":{"tags":["bff","bff"],"summary":"Get Onboarding","operationId":"get_onboarding_bff_account_onboarding_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/bff/articles":{"get":{"tags":["bff","bff","articles"],"summary":"List Articles","operationId":"list_articles_bff_articles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_language","in":"query","required":false,"schema":{"type":"string","default":"fr","title":"Target Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bff/articles/{article_id}":{"get":{"tags":["bff","bff","articles"],"summary":"Get Article","operationId":"get_article_bff_articles__article_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"article_id","in":"path","required":true,"schema":{"type":"string","title":"Article Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bff/user_profile":{"get":{"tags":["bff","bff"],"summary":"Get User Profile","operationId":"get_user_profile_bff_user_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/bff/packs":{"get":{"tags":["bff","bff-packs"],"summary":"List Packs For Selection","operationId":"list_packs_for_selection_bff_packs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"source_lang","in":"query","required":true,"schema":{"type":"string","title":"Source Lang"}},{"name":"target_lang","in":"query","required":true,"schema":{"type":"string","title":"Target Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PackSelectionItem"},"title":"Response List Packs For Selection Bff Packs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/media/{filename}":{"get":{"tags":["media"],"summary":"Get Media File","operationId":"get_media_file_media__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}}},"components":{"schemas":{"AccountLanguagePair":{"properties":{"id":{"type":"string","title":"Id"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["id","source_language","target_language","proficiencies"],"title":"AccountLanguagePair"},"AccountResponse":{"properties":{"email":{"type":"string","title":"Email"},"human_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Name"},"language_pairs":{"items":{"$ref":"#/components/schemas/AccountLanguagePair"},"type":"array","title":"Language Pairs"}},"type":"object","required":["email","human_name","language_pairs"],"title":"AccountResponse"},"AccountStatusResponse":{"properties":{"problem_flags":{"items":{"type":"string"},"type":"array","title":"Problem Flags"},"error_messages":{"items":{"type":"string"},"type":"array","title":"Error Messages"}},"type":"object","required":["problem_flags","error_messages"],"title":"AccountStatusResponse"},"AddEntryRequest":{"properties":{"sense_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sense Id"},"surface_text":{"type":"string","title":"Surface Text"}},"type":"object","required":["surface_text"],"title":"AddEntryRequest"},"AddFlashcardTemplateRequest":{"properties":{"card_direction":{"type":"string","title":"Card Direction"},"prompt_text":{"type":"string","title":"Prompt Text"},"answer_text":{"type":"string","title":"Answer Text"},"prompt_context_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Context Text"},"answer_context_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer Context Text"}},"type":"object","required":["card_direction","prompt_text","answer_text"],"title":"AddFlashcardTemplateRequest"},"AddFromTokenRequest":{"properties":{"language_pair_id":{"type":"string","title":"Language Pair Id"},"surface":{"type":"string","title":"Surface"},"spacy_lemma":{"type":"string","title":"Spacy Lemma"},"pos_ud":{"type":"string","title":"Pos Ud"},"language":{"type":"string","title":"Language"},"source_article_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Article Id"}},"type":"object","required":["language_pair_id","surface","spacy_lemma","pos_ud","language"],"title":"AddFromTokenRequest"},"AddLearnableLanguageRequest":{"properties":{"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["source_language","target_language","proficiencies"],"title":"AddLearnableLanguageRequest"},"AddTobankRequest":{"properties":{"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"}},"type":"object","required":["source_lang","target_lang"],"title":"AddTobankRequest"},"AddTobankResponse":{"properties":{"added":{"items":{"type":"string"},"type":"array","title":"Added"}},"type":"object","required":["added"],"title":"AddTobankResponse"},"AddWordRequest":{"properties":{"language_pair_id":{"type":"string","title":"Language Pair Id"},"surface_text":{"type":"string","title":"Surface Text"},"entry_pathway":{"type":"string","title":"Entry Pathway","default":"manual"},"is_phrase":{"type":"boolean","title":"Is Phrase","default":false},"source_article_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Article Id"}},"type":"object","required":["language_pair_id","surface_text"],"title":"AddWordRequest"},"ArticleDetail":{"properties":{"id":{"type":"string","title":"Id"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"source_language":{"type":"string","title":"Source Language"},"source_title":{"type":"string","title":"Source Title"},"source_body":{"type":"string","title":"Source Body"},"source_body_pos":{"additionalProperties":true,"type":"object","title":"Source Body Pos"},"target_language":{"type":"string","title":"Target Language"},"target_complexities":{"items":{"type":"string"},"type":"array","title":"Target Complexities"},"target_title":{"type":"string","title":"Target Title"},"target_body":{"type":"string","title":"Target Body"},"target_audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Audio Url"},"target_body_pos":{"additionalProperties":true,"type":"object","title":"Target Body Pos"},"target_body_transcript":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Target Body Transcript"}},"type":"object","required":["id","published_at","source_language","source_title","source_body","source_body_pos","target_language","target_complexities","target_title","target_body","target_audio_url","target_body_pos","target_body_transcript"],"title":"ArticleDetail"},"ArticleItem":{"properties":{"id":{"type":"string","title":"Id"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"source_language":{"type":"string","title":"Source Language"},"source_title":{"type":"string","title":"Source Title"},"target_language":{"type":"string","title":"Target Language"},"target_complexities":{"items":{"type":"string"},"type":"array","title":"Target Complexities"},"target_title":{"type":"string","title":"Target Title"}},"type":"object","required":["id","published_at","source_language","source_title","target_language","target_complexities","target_title"],"title":"ArticleItem"},"ArticleListResponse":{"properties":{"articles":{"items":{"$ref":"#/components/schemas/ArticleItem"},"type":"array","title":"Articles"}},"type":"object","required":["articles"],"title":"ArticleListResponse"},"CreatePackRequest":{"properties":{"name":{"type":"string","title":"Name"},"name_target":{"type":"string","title":"Name Target"},"description":{"type":"string","title":"Description"},"description_target":{"type":"string","title":"Description Target"},"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies","default":[]}},"type":"object","required":["name","name_target","description","description_target","source_lang","target_lang"],"title":"CreatePackRequest"},"FlashcardEventResponse":{"properties":{"id":{"type":"string","title":"Id"},"flashcard_id":{"type":"string","title":"Flashcard Id"},"user_id":{"type":"string","title":"User Id"},"event_type":{"type":"string","title":"Event Type"},"user_response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Response"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","flashcard_id","user_id","event_type","user_response","created_at"],"title":"FlashcardEventResponse"},"FlashcardResponse":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"bank_entry_id":{"type":"string","title":"Bank Entry Id"},"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"},"prompt_text":{"type":"string","title":"Prompt Text"},"answer_text":{"type":"string","title":"Answer Text"},"prompt_context_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Context Text"},"answer_context_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer Context Text"},"card_direction":{"type":"string","title":"Card Direction"},"prompt_modality":{"type":"string","title":"Prompt Modality"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","user_id","bank_entry_id","source_lang","target_lang","prompt_text","answer_text","prompt_context_text","answer_context_text","card_direction","prompt_modality","created_at"],"title":"FlashcardResponse"},"FlashcardTemplateResponse":{"properties":{"id":{"type":"string","title":"Id"},"pack_entry_id":{"type":"string","title":"Pack Entry Id"},"card_direction":{"type":"string","title":"Card Direction"},"prompt_text":{"type":"string","title":"Prompt Text"},"answer_text":{"type":"string","title":"Answer Text"},"prompt_context_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Context Text"},"answer_context_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer Context Text"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","pack_entry_id","card_direction","prompt_text","answer_text","prompt_context_text","answer_context_text","created_at"],"title":"FlashcardTemplateResponse"},"FromTokenResponse":{"properties":{"entry":{"$ref":"#/components/schemas/WordBankEntryResponse"},"sense_candidates":{"items":{"$ref":"#/components/schemas/SenseCandidateResponse"},"type":"array","title":"Sense Candidates"},"matched_via":{"type":"string","title":"Matched Via"}},"type":"object","required":["entry","sense_candidates","matched_via"],"title":"FromTokenResponse"},"GenerateFlashcardsRequest":{"properties":{"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},"type":"object","title":"GenerateFlashcardsRequest"},"GenerationRequest":{"properties":{"target_language":{"type":"string","title":"Target Language"},"complexity_level":{"type":"string","title":"Complexity Level"},"input_texts":{"items":{"type":"string"},"type":"array","title":"Input Texts"},"source_language":{"type":"string","title":"Source Language","default":"en"}},"type":"object","required":["target_language","complexity_level","input_texts"],"title":"GenerationRequest"},"GenerationResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"}},"type":"object","required":["job_id"],"title":"GenerationResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobListResponse":{"properties":{"jobs":{"items":{"$ref":"#/components/schemas/JobSummary"},"type":"array","title":"Jobs"}},"type":"object","required":["jobs"],"title":"JobListResponse"},"JobResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"translated_article_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Translated Article Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","status","created_at"],"title":"JobResponse"},"JobSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","status","created_at"],"title":"JobSummary"},"LanguagePairOption":{"properties":{"value":{"type":"string","title":"Value"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"}},"type":"object","required":["value","label","description"],"title":"LanguagePairOption"},"LearnableLanguageItem":{"properties":{"id":{"type":"string","title":"Id"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["id","source_language","target_language","proficiencies"],"title":"LearnableLanguageItem"},"LearnableLanguageRequest":{"properties":{"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["source_language","target_language","proficiencies"],"title":"LearnableLanguageRequest"},"LearnableLanguageResponse":{"properties":{"id":{"type":"string","title":"Id"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["id","source_language","target_language","proficiencies"],"title":"LearnableLanguageResponse"},"LemmaResponse":{"properties":{"id":{"type":"string","title":"Id"},"headword":{"type":"string","title":"Headword"},"language":{"type":"string","title":"Language"},"pos_raw":{"type":"string","title":"Pos Raw"},"pos_normalised":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pos Normalised"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["id","headword","language","pos_raw","pos_normalised","gender","tags"],"title":"LemmaResponse"},"LoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"OnboardingRequest":{"properties":{"human_name":{"type":"string","title":"Human Name"},"language_pairs":{"items":{"type":"string"},"type":"array","title":"Language Pairs"},"proficiencies":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Proficiencies"}},"type":"object","required":["human_name","language_pairs","proficiencies"],"title":"OnboardingRequest"},"OnboardingResponse":{"properties":{"language_pairs":{"items":{"$ref":"#/components/schemas/LanguagePairOption"},"type":"array","title":"Language Pairs"},"proficiencies":{"items":{"$ref":"#/components/schemas/ProficiencyOption"},"type":"array","title":"Proficiencies"}},"type":"object","required":["language_pairs","proficiencies"],"title":"OnboardingResponse"},"POSRequest":{"properties":{"text":{"type":"string","title":"Text"},"language":{"type":"string","title":"Language"}},"type":"object","required":["text","language"],"title":"POSRequest"},"POSResponse":{"properties":{"language":{"type":"string","title":"Language"},"tokens":{"items":{"$ref":"#/components/schemas/TokenInfo"},"type":"array","title":"Tokens"}},"type":"object","required":["language","tokens"],"title":"POSResponse"},"PackEntryResponse":{"properties":{"id":{"type":"string","title":"Id"},"pack_id":{"type":"string","title":"Pack Id"},"sense_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sense Id"},"surface_text":{"type":"string","title":"Surface Text"},"created_at":{"type":"string","title":"Created At"},"flashcard_templates":{"items":{"$ref":"#/components/schemas/FlashcardTemplateResponse"},"type":"array","title":"Flashcard Templates","default":[]}},"type":"object","required":["id","pack_id","sense_id","surface_text","created_at"],"title":"PackEntryResponse"},"PackResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"name_target":{"type":"string","title":"Name Target"},"description":{"type":"string","title":"Description"},"description_target":{"type":"string","title":"Description Target"},"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"},"is_published":{"type":"boolean","title":"Is Published"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","name","name_target","description","description_target","source_lang","target_lang","proficiencies","is_published","created_at"],"title":"PackResponse"},"PackSelectionItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"name_target":{"type":"string","title":"Name Target"},"description":{"type":"string","title":"Description"},"description_target":{"type":"string","title":"Description Target"},"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"},"entry_count":{"type":"integer","title":"Entry Count"},"already_added":{"type":"boolean","title":"Already Added"}},"type":"object","required":["id","name","name_target","description","description_target","source_lang","target_lang","proficiencies","entry_count","already_added"],"title":"PackSelectionItem"},"PackSummaryResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"name_target":{"type":"string","title":"Name Target"},"description":{"type":"string","title":"Description"},"description_target":{"type":"string","title":"Description Target"},"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"},"entry_count":{"type":"integer","title":"Entry Count"}},"type":"object","required":["id","name","name_target","description","description_target","source_lang","target_lang","proficiencies","entry_count"],"title":"PackSummaryResponse"},"ProficiencyOption":{"properties":{"value":{"type":"string","title":"Value"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"}},"type":"object","required":["value","label","description"],"title":"ProficiencyOption"},"RecordEventRequest":{"properties":{"event_type":{"type":"string","title":"Event Type"},"user_response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Response"}},"type":"object","required":["event_type"],"title":"RecordEventRequest"},"RegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"RegisterRequest"},"RegisterResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["success"],"title":"RegisterResponse"},"SenseCandidateResponse":{"properties":{"id":{"type":"string","title":"Id"},"gloss":{"type":"string","title":"Gloss"},"topics":{"items":{"type":"string"},"type":"array","title":"Topics"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["id","gloss","topics","tags"],"title":"SenseCandidateResponse"},"SenseResponse":{"properties":{"id":{"type":"string","title":"Id"},"sense_index":{"type":"integer","title":"Sense Index"},"gloss":{"type":"string","title":"Gloss"},"topics":{"items":{"type":"string"},"type":"array","title":"Topics"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["id","sense_index","gloss","topics","tags"],"title":"SenseResponse"},"SetSenseRequest":{"properties":{"sense_id":{"type":"string","title":"Sense Id"}},"type":"object","required":["sense_id"],"title":"SetSenseRequest"},"TokenInfo":{"properties":{"text":{"type":"string","title":"Text"},"lemma":{"type":"string","title":"Lemma"},"pos":{"type":"string","title":"Pos"},"tag":{"type":"string","title":"Tag"},"dep":{"type":"string","title":"Dep"},"is_stop":{"type":"boolean","title":"Is Stop"}},"type":"object","required":["text","lemma","pos","tag","dep","is_stop"],"title":"TokenInfo"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"}},"type":"object","required":["access_token"],"title":"TokenResponse"},"TranslationResponse":{"properties":{"text":{"type":"string","title":"Text"},"target_language":{"type":"string","title":"Target Language"},"translated_text":{"type":"string","title":"Translated Text"}},"type":"object","required":["text","target_language","translated_text"],"title":"TranslationResponse"},"UpdatePackRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"name_target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Target"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"description_target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Target"},"proficiencies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Proficiencies"}},"type":"object","title":"UpdatePackRequest"},"UserProfileResponse":{"properties":{"learnable_languages":{"items":{"$ref":"#/components/schemas/LearnableLanguageItem"},"type":"array","title":"Learnable Languages"}},"type":"object","required":["learnable_languages"],"title":"UserProfileResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WordBankEntryResponse":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"language_pair_id":{"type":"string","title":"Language Pair Id"},"sense_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sense Id"},"wordform_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wordform Id"},"surface_text":{"type":"string","title":"Surface Text"},"is_phrase":{"type":"boolean","title":"Is Phrase"},"entry_pathway":{"type":"string","title":"Entry Pathway"},"source_article_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Article Id"},"disambiguation_status":{"type":"string","title":"Disambiguation Status"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","user_id","language_pair_id","sense_id","wordform_id","surface_text","is_phrase","entry_pathway","source_article_id","disambiguation_status","created_at"],"title":"WordBankEntryResponse"},"WordformMatch":{"properties":{"lemma":{"$ref":"#/components/schemas/LemmaResponse"},"senses":{"items":{"$ref":"#/components/schemas/SenseResponse"},"type":"array","title":"Senses"}},"type":"object","required":["lemma","senses"],"title":"WordformMatch"},"app__routers__api__admin__packs__PackDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"name_target":{"type":"string","title":"Name Target"},"description":{"type":"string","title":"Description"},"description_target":{"type":"string","title":"Description Target"},"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"},"is_published":{"type":"boolean","title":"Is Published"},"created_at":{"type":"string","title":"Created At"},"entries":{"items":{"$ref":"#/components/schemas/PackEntryResponse"},"type":"array","title":"Entries","default":[]}},"type":"object","required":["id","name","name_target","description","description_target","source_lang","target_lang","proficiencies","is_published","created_at"],"title":"PackDetailResponse"},"app__routers__api__packs__PackDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"name_target":{"type":"string","title":"Name Target"},"description":{"type":"string","title":"Description"},"description_target":{"type":"string","title":"Description Target"},"source_lang":{"type":"string","title":"Source Lang"},"target_lang":{"type":"string","title":"Target Lang"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"},"entry_count":{"type":"integer","title":"Entry Count"},"surface_texts":{"items":{"type":"string"},"type":"array","title":"Surface Texts"}},"type":"object","required":["id","name","name_target","description","description_target","source_lang","target_lang","proficiencies","entry_count","surface_texts"],"title":"PackDetailResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} \ No newline at end of file