feat(#248): expose parentId in TagTreeNodeDTO OpenAPI schema and regenerate TypeScript types

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-16 22:33:12 +02:00
parent 5e5c249aba
commit a669f6368d
2 changed files with 103 additions and 8 deletions

View File

@@ -3,4 +3,12 @@ package org.raddatz.familienarchiv.dto;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
public record TagTreeNodeDTO(UUID id, String name, String color, int documentCount, List<TagTreeNodeDTO> children, UUID parentId) {} import io.swagger.v3.oas.annotations.media.Schema;
public record TagTreeNodeDTO(
UUID id,
String name,
String color,
int documentCount,
List<TagTreeNodeDTO> children,
@Schema(description = "Parent tag ID, null for root tags") UUID parentId) {}

View File

@@ -180,6 +180,22 @@ export interface paths {
patch?: never; patch?: never;
trace?: never; trace?: never;
}; };
"/api/tags/{id}/merge": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post: operations["mergeTag"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/persons": { "/api/persons": {
parameters: { parameters: {
query?: never; query?: never;
@@ -1140,6 +1156,22 @@ export interface paths {
patch?: never; patch?: never;
trace?: never; trace?: never;
}; };
"/api/tags/{id}/subtree": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete: operations["deleteSubtree"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/persons/{id}/aliases/{aliasId}": { "/api/persons/{id}/aliases/{aliasId}": {
parameters: { parameters: {
query?: never; query?: never;
@@ -1340,6 +1372,10 @@ export interface components {
currentPassword?: string; currentPassword?: string;
newPassword?: string; newPassword?: string;
}; };
MergeTagDTO: {
/** Format: uuid */
targetId?: string;
};
PersonNameAliasDTO: { PersonNameAliasDTO: {
lastName: string; lastName: string;
firstName?: string; firstName?: string;
@@ -1566,6 +1602,11 @@ export interface components {
/** Format: int32 */ /** Format: int32 */
documentCount?: number; documentCount?: number;
children?: components["schemas"]["TagTreeNodeDTO"][]; children?: components["schemas"]["TagTreeNodeDTO"][];
/**
* Format: uuid
* @description Parent tag ID, null for root tags
*/
parentId?: string;
}; };
StatsDTO: { StatsDTO: {
/** Format: int64 */ /** Format: int64 */
@@ -1578,17 +1619,17 @@ export interface components {
/** Format: uuid */ /** Format: uuid */
id?: string; id?: string;
displayName?: string; displayName?: string;
personType?: string;
firstName?: string; firstName?: string;
lastName?: string; lastName?: string;
/** Format: int64 */
documentCount?: number;
/** Format: int32 */ /** Format: int32 */
birthYear?: number; birthYear?: number;
/** Format: int32 */ /** Format: int32 */
deathYear?: number; deathYear?: number;
alias?: string; alias?: string;
notes?: string; notes?: string;
/** Format: int64 */
documentCount?: number;
personType?: string;
}; };
TrainingInfoResponse: { TrainingInfoResponse: {
/** Format: int32 */ /** Format: int32 */
@@ -1630,11 +1671,13 @@ export interface components {
timeout?: number; timeout?: number;
}; };
PageNotificationDTO: { PageNotificationDTO: {
/** Format: int32 */
totalPages?: number;
/** Format: int64 */ /** Format: int64 */
totalElements?: number; totalElements?: number;
/** Format: int32 */
totalPages?: number;
pageable?: components["schemas"]["PageableObject"]; pageable?: components["schemas"]["PageableObject"];
first?: boolean;
last?: boolean;
/** Format: int32 */ /** Format: int32 */
size?: number; size?: number;
content?: components["schemas"]["NotificationDTO"][]; content?: components["schemas"]["NotificationDTO"][];
@@ -1643,8 +1686,6 @@ export interface components {
sort?: components["schemas"]["SortObject"]; sort?: components["schemas"]["SortObject"];
/** Format: int32 */ /** Format: int32 */
numberOfElements?: number; numberOfElements?: number;
first?: boolean;
last?: boolean;
empty?: boolean; empty?: boolean;
}; };
PageableObject: { PageableObject: {
@@ -2246,6 +2287,32 @@ export interface operations {
}; };
}; };
}; };
mergeTag: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["MergeTagDTO"];
};
};
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"*/*": components["schemas"]["Tag"];
};
};
};
};
getPersons: { getPersons: {
parameters: { parameters: {
query?: { query?: {
@@ -3875,6 +3942,26 @@ export interface operations {
}; };
}; };
}; };
deleteSubtree: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description No Content */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
removeAlias: { removeAlias: {
parameters: { parameters: {
query?: never; query?: never;