update search and party schemas for weapon series objects

This commit is contained in:
Justin Edmund 2025-12-03 11:59:12 -08:00
parent 23a2481190
commit c5f6963ca7
3 changed files with 20 additions and 4 deletions

View file

@ -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) */

View file

@ -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'
}>

View file

@ -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()
})