init
All checks were successful
Gitea Auto Deploy / Deploy-Container (push) Successful in 1m31s

This commit is contained in:
2025-07-01 09:33:43 +07:00
parent 3a26f09a01
commit 331aba4489
156 changed files with 1206219 additions and 146 deletions

100
src/zod/enka.zod.ts Normal file
View File

@@ -0,0 +1,100 @@
// Generated by ts-to-zod
import { z } from "zod";
const privacySettingInfoSchema = z.object({
displayCollection: z.boolean(),
displayRecord: z.boolean(),
displayRecordTeam: z.boolean(),
displayOnlineStatus: z.boolean(),
displayDiary: z.boolean(),
});
const challengeInfoSchema = z.object({});
const recordInfoSchema = z.object({
achievementCount: z.number(),
bookCount: z.number(),
avatarCount: z.number(),
equipmentCount: z.number(),
musicCount: z.number(),
relicCount: z.number(),
challengeInfo: challengeInfoSchema,
maxRogueChallengeScore: z.number(),
});
const subAffixSchema = z.object({
affixId: z.number(),
cnt: z.number(),
step: z.number().optional(),
});
const flatPropSchema = z.object({
type: z.string(),
value: z.number(),
});
const relicFlatSchema = z.object({
props: z.array(flatPropSchema),
setName: z.string(),
setID: z.number(),
});
const relicSchema = z.object({
mainAffixId: z.number(),
subAffixList: z.array(subAffixSchema),
tid: z.number(),
type: z.number(),
level: z.number(),
_flat: relicFlatSchema,
});
const skillTreeSchema = z.object({
pointId: z.number(),
level: z.number(),
});
const equipmentFlatSchema = z.object({
props: z.array(flatPropSchema),
name: z.string(),
});
const equipmentSchema = z.object({
rank: z.number(),
tid: z.number(),
promotion: z.number(),
level: z.number(),
_flat: equipmentFlatSchema,
});
export const avatarEnkaDetailSchema = z.object({
relicList: z.array(relicSchema),
level: z.number(),
promotion: z.number(),
rank: z.number().optional(),
skillTreeList: z.array(skillTreeSchema),
equipment: equipmentSchema,
avatarId: z.number(),
_assist: z.boolean().optional(),
});
const detailInfoSchema = z.object({
worldLevel: z.number(),
privacySettingInfo: privacySettingInfoSchema,
headIcon: z.number(),
signature: z.string(),
avatarDetailList: z.array(avatarEnkaDetailSchema),
platform: z.string(),
recordInfo: recordInfoSchema,
uid: z.number(),
level: z.number(),
nickname: z.string(),
isDisplayAvatar: z.boolean(),
friendCount: z.number(),
personalCardId: z.number(),
});
export const enkaResponseSchema = z.object({
detailInfo: detailInfoSchema,
ttl: z.number(),
uid: z.string(),
});