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.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;
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": {
parameters: {
query?: never;
@@ -1140,6 +1156,22 @@ export interface paths {
patch?: 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}": {
parameters: {
query?: never;
@@ -1340,6 +1372,10 @@ export interface components {
currentPassword?: string;
newPassword?: string;
};
MergeTagDTO: {
/** Format: uuid */
targetId?: string;
};
PersonNameAliasDTO: {
lastName: string;
firstName?: string;
@@ -1566,6 +1602,11 @@ export interface components {
/** Format: int32 */
documentCount?: number;
children?: components["schemas"]["TagTreeNodeDTO"][];
/**
* Format: uuid
* @description Parent tag ID, null for root tags
*/
parentId?: string;
};
StatsDTO: {
/** Format: int64 */
@@ -1578,17 +1619,17 @@ export interface components {
/** Format: uuid */
id?: string;
displayName?: string;
personType?: string;
firstName?: string;
lastName?: string;
/** Format: int64 */
documentCount?: number;
/** Format: int32 */
birthYear?: number;
/** Format: int32 */
deathYear?: number;
alias?: string;
notes?: string;
/** Format: int64 */
documentCount?: number;
personType?: string;
};
TrainingInfoResponse: {
/** Format: int32 */
@@ -1630,11 +1671,13 @@ export interface components {
timeout?: number;
};
PageNotificationDTO: {
/** Format: int32 */
totalPages?: number;
/** Format: int64 */
totalElements?: number;
/** Format: int32 */
totalPages?: number;
pageable?: components["schemas"]["PageableObject"];
first?: boolean;
last?: boolean;
/** Format: int32 */
size?: number;
content?: components["schemas"]["NotificationDTO"][];
@@ -1643,8 +1686,6 @@ export interface components {
sort?: components["schemas"]["SortObject"];
/** Format: int32 */
numberOfElements?: number;
first?: boolean;
last?: boolean;
empty?: boolean;
};
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: {
parameters: {
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: {
parameters: {
query?: never;