diff --git a/src/lib/api/adapters/search.adapter.ts b/src/lib/api/adapters/search.adapter.ts index a4580abb..0ad04ea9 100644 --- a/src/lib/api/adapters/search.adapter.ts +++ b/src/lib/api/adapters/search.adapter.ts @@ -50,8 +50,8 @@ export interface SearchResult { rarity?: number /** Weapon/Character proficiency */ proficiency?: number - /** Series ID for categorization */ - series?: number + /** Series - object for weapons (WeaponSeriesRef), number array for characters */ + series?: { id: string; slug: string; name: { en: string; ja: string } } | number[] /** URL for entity image */ imageUrl?: string /** Type of entity (lowercase for compatibility) */ diff --git a/src/lib/api/queries/search.queries.ts b/src/lib/api/queries/search.queries.ts index c3beeccd..512be5ad 100644 --- a/src/lib/api/queries/search.queries.ts +++ b/src/lib/api/queries/search.queries.ts @@ -40,7 +40,8 @@ export interface SearchPageResult { element?: number rarity?: number proficiency?: number - series?: number + /** Series - object for weapons, number array for characters */ + series?: { id: string; slug: string; name: { en: string; ja: string } } | number[] imageUrl?: string searchableType: 'Weapon' | 'Character' | 'Summon' }> diff --git a/src/lib/api/schemas/party.ts b/src/lib/api/schemas/party.ts index 75700a6d..60d8507f 100644 --- a/src/lib/api/schemas/party.ts +++ b/src/lib/api/schemas/party.ts @@ -186,6 +186,21 @@ const JobAccessorySchema = z.object({ slug: z.string() }) +// Weapon series reference schema (embedded in weapon) +const WeaponSeriesRefSchema = z.object({ + id: z.string(), + slug: z.string(), + name: z.object({ + en: z.string(), + ja: z.string() + }), + has_weapon_keys: z.boolean().optional(), + has_awakening: z.boolean().optional(), + has_ax_skills: z.boolean().optional(), + extra: z.boolean().optional(), + element_changeable: z.boolean().optional() +}) + // Item schemas const WeaponSchema = z.object({ id: z.string(), @@ -199,7 +214,7 @@ const WeaponSchema = z.object({ rarity: z.number().nullish(), max_level: z.number().nullish(), max_skill_level: z.number().nullish(), - series: z.number().nullish(), + series: WeaponSeriesRefSchema.nullish(), icon_url: z.string().nullish(), square_url: z.string().nullish() })