From 4634da9865ebcbef4e56af4c7a9311709e90d3c6 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 6 Jun 2026 16:11:01 +0200 Subject: [PATCH] feat(search): add @Schema annotations and regenerate TypeScript API types Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/lib/generated/api.ts | 400 +++++++++++++++++++----------- 1 file changed, 254 insertions(+), 146 deletions(-) diff --git a/frontend/src/lib/generated/api.ts b/frontend/src/lib/generated/api.ts index d3457785..33d0904c 100644 --- a/frontend/src/lib/generated/api.ts +++ b/frontend/src/lib/generated/api.ts @@ -84,22 +84,6 @@ export interface paths { patch?: never; trace?: never; }; - "/api/persons/{id}/confirm": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch: operations["confirmPerson"]; - trace?: never; - }; "/api/documents/{id}": { parameters: { query?: never; @@ -244,6 +228,22 @@ export interface paths { patch?: never; trace?: never; }; + "/api/search/nl": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["search"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/api/persons": { parameters: { query?: never; @@ -708,6 +708,22 @@ export interface paths { patch?: never; trace?: never; }; + "/api/admin/backfill-titles": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["backfillTitles"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/api/admin/backfill-file-hashes": { parameters: { query?: never; @@ -740,6 +756,22 @@ export interface paths { patch: operations["patchFamilyMember"]; trace?: never; }; + "/api/persons/{id}/confirm": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["confirmPerson"]; + trace?: never; + }; "/api/notifications/{id}/read": { parameters: { query?: never; @@ -859,7 +891,7 @@ export interface paths { path?: never; cookie?: never; }; - get: operations["search"]; + get: operations["search_1"]; put?: never; post?: never; delete?: never; @@ -1323,7 +1355,7 @@ export interface paths { path?: never; cookie?: never; }; - get: operations["search_1"]; + get: operations["search_2"]; put?: never; post?: never; delete?: never; @@ -1651,7 +1683,7 @@ export interface components { /** Format: int32 */ deathYear?: number; /** Format: int32 */ - generation?: number | null; + generation?: number; }; Person: { /** Format: uuid */ @@ -1668,7 +1700,7 @@ export interface components { /** Format: int32 */ deathYear?: number; /** Format: int32 */ - generation?: number | null; + generation?: number; familyMember: boolean; sourceRef?: string; provisional: boolean; @@ -1803,6 +1835,98 @@ export interface components { /** Format: uuid */ targetId: string; }; + NlSearchRequest: { + query: string; + }; + Pageable: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + size?: number; + sort?: string[]; + }; + ActivityActorDTO: { + initials: string; + color: string; + name?: string; + }; + DocumentListItem: { + /** Format: uuid */ + id: string; + title: string; + originalFilename: string; + thumbnailUrl?: string; + /** Format: date */ + documentDate?: string; + /** @enum {string} */ + metaDatePrecision: "DAY" | "MONTH" | "SEASON" | "YEAR" | "RANGE" | "APPROX" | "UNKNOWN"; + /** Format: date */ + metaDateEnd?: string; + sender?: components["schemas"]["Person"]; + receivers: components["schemas"]["Person"][]; + tags: components["schemas"]["Tag"][]; + archiveBox?: string; + archiveFolder?: string; + location?: string; + summary?: string; + /** Format: int32 */ + completionPercentage: number; + contributors: components["schemas"]["ActivityActorDTO"][]; + matchData: components["schemas"]["SearchMatchData"]; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string; + }; + DocumentSearchResult: { + items: components["schemas"]["DocumentListItem"][]; + /** Format: int64 */ + totalElements: number; + /** Format: int32 */ + pageNumber: number; + /** Format: int32 */ + pageSize: number; + /** Format: int32 */ + totalPages: number; + /** Format: int64 */ + undatedCount: number; + }; + MatchOffset: { + /** Format: int32 */ + start: number; + /** Format: int32 */ + length: number; + }; + NlQueryInterpretation: { + resolvedPersons: components["schemas"]["PersonHint"][]; + ambiguousPersons: components["schemas"]["PersonHint"][]; + /** Format: date */ + dateFrom?: string; + /** Format: date */ + dateTo?: string; + keywords: string[]; + rawQuery: string; + keywordsApplied: boolean; + }; + NlSearchResponse: { + result: components["schemas"]["DocumentSearchResult"]; + interpretation: components["schemas"]["NlQueryInterpretation"]; + }; + PersonHint: { + /** Format: uuid */ + id: string; + displayName: string; + }; + SearchMatchData: { + transcriptionSnippet?: string; + titleOffsets: components["schemas"]["MatchOffset"][]; + senderMatched: boolean; + matchedReceiverIds: string[]; + matchedTagIds: string[]; + snippetOffsets: components["schemas"]["MatchOffset"][]; + summarySnippet?: string; + summaryOffsets: components["schemas"]["MatchOffset"][]; + }; CreateRelationshipRequest: { /** Format: uuid */ relatedPersonId: string; @@ -2188,11 +2312,6 @@ export interface components { /** Format: int64 */ transcriptionCount: number; }; - ActivityActorDTO: { - initials: string; - color: string; - name?: string; - }; TranscriptionQueueItemDTO: { /** Format: uuid */ id: string; @@ -2235,25 +2354,6 @@ export interface components { /** Format: int64 */ totalStories: number; }; - PersonSummaryDTO: { - title?: string; - /** Format: uuid */ - id?: string; - displayName?: string; - firstName?: string; - lastName?: string; - /** Format: int64 */ - documentCount?: number; - /** Format: int32 */ - birthYear?: number; - /** Format: int32 */ - deathYear?: number; - alias?: string; - notes?: string; - personType?: string; - familyMember?: boolean; - provisional?: boolean; - }; PersonSearchResult: { items: components["schemas"]["PersonSummaryDTO"][]; /** Format: int64 */ @@ -2265,6 +2365,25 @@ export interface components { /** Format: int32 */ totalPages: number; }; + PersonSummaryDTO: { + title?: string; + /** Format: uuid */ + id?: string; + displayName?: string; + firstName?: string; + lastName?: string; + /** Format: int64 */ + documentCount?: number; + notes?: string; + /** Format: int32 */ + birthYear?: number; + /** Format: int32 */ + deathYear?: number; + provisional?: boolean; + alias?: string; + personType?: string; + familyMember?: boolean; + }; InferredRelationshipWithPersonDTO: { person: components["schemas"]["PersonNodeDTO"]; label: string; @@ -2280,7 +2399,7 @@ export interface components { /** Format: int32 */ deathYear?: number; /** Format: int32 */ - generation?: number | null; + generation?: number; familyMember: boolean; }; InferredRelationshipDTO: { @@ -2433,63 +2552,6 @@ export interface components { /** Format: int32 */ totalPages?: number; }; - DocumentListItem: { - /** Format: uuid */ - id: string; - title: string; - originalFilename: string; - thumbnailUrl?: string; - /** Format: date */ - documentDate?: string; - /** @enum {string} */ - metaDatePrecision: "DAY" | "MONTH" | "SEASON" | "YEAR" | "RANGE" | "APPROX" | "UNKNOWN"; - /** Format: date */ - metaDateEnd?: string; - sender?: components["schemas"]["Person"]; - receivers: components["schemas"]["Person"][]; - tags: components["schemas"]["Tag"][]; - archiveBox?: string; - archiveFolder?: string; - location?: string; - summary?: string; - /** Format: int32 */ - completionPercentage: number; - contributors: components["schemas"]["ActivityActorDTO"][]; - matchData: components["schemas"]["SearchMatchData"]; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string; - }; - DocumentSearchResult: { - items: components["schemas"]["DocumentListItem"][]; - /** Format: int64 */ - totalElements: number; - /** Format: int32 */ - pageNumber: number; - /** Format: int32 */ - pageSize: number; - /** Format: int32 */ - totalPages: number; - /** Format: int64 */ - undatedCount: number; - }; - MatchOffset: { - /** Format: int32 */ - start: number; - /** Format: int32 */ - length: number; - }; - SearchMatchData: { - transcriptionSnippet?: string; - titleOffsets: components["schemas"]["MatchOffset"][]; - senderMatched: boolean; - matchedReceiverIds: string[]; - matchedTagIds: string[]; - snippetOffsets: components["schemas"]["MatchOffset"][]; - summarySnippet?: string; - summaryOffsets: components["schemas"]["MatchOffset"][]; - }; IncompleteDocumentDTO: { /** Format: uuid */ id: string; @@ -2828,6 +2890,26 @@ export interface operations { }; }; }; + deletePerson: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description No Content */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; getDocument: { parameters: { query?: never; @@ -3154,6 +3236,32 @@ export interface operations { }; }; }; + search: { + parameters: { + query: { + pageable: components["schemas"]["Pageable"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["NlSearchRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["NlSearchResponse"]; + }; + }; + }; + }; getPersons: { parameters: { query?: { @@ -3184,48 +3292,6 @@ export interface operations { }; }; }; - confirmPerson: { - parameters: { - query?: never; - header?: never; - path: { - id: string; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "*/*": components["schemas"]["Person"]; - }; - }; - }; - }; - deletePerson: { - parameters: { - query?: never; - header?: never; - path: { - id: string; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; createPerson: { parameters: { query?: never; @@ -4117,6 +4183,26 @@ export interface operations { }; }; }; + backfillTitles: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["BackfillResult"]; + }; + }; + }; + }; backfillFileHashes: { parameters: { query?: never; @@ -4163,6 +4249,28 @@ export interface operations { }; }; }; + confirmPerson: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["Person"]; + }; + }; + }; + }; markOneRead: { parameters: { query?: never; @@ -4443,7 +4551,7 @@ export interface operations { }; }; }; - search: { + search_1: { parameters: { query?: { q?: string; @@ -5067,7 +5175,7 @@ export interface operations { }; }; }; - search_1: { + search_2: { parameters: { query?: { q?: string;