返回 AiToEarn
auth.vo.ts
1 import { AccountType, ChannelAuthSessionStatus, createZodDto } from '@yikart/common'
2 import { z } from 'zod'
3 import { LocaleTextSchema } from '../platforms/platforms.vo'
4
5 export const AuthStartVoSchema = z.object({
6 url: z.string().describe('平台授权 URL 或二维码图片 data URL'),
7 sessionId: z.string().describe('授权 Session ID'),
8 expiresAt: z.coerce.date().describe('授权 Session 过期时间'),
9 authInstructions: LocaleTextSchema.optional().describe('授权操作提示语'),
10 })
11
12 export class AuthStartVo extends createZodDto(AuthStartVoSchema) {}
13
14 export const AuthConnectedAccountVoSchema = z.object({
15 accountId: z.string().describe('本地账号 ID'),
16 platform: z.enum(AccountType).describe('平台类型'),
17 platformUid: z.string().describe('平台账号 UID'),
18 account: z.string().optional().describe('平台账号补充唯一标识'),
19 displayName: z.string().describe('平台账号展示名'),
20 avatarUrl: z.string().optional().describe('平台账号头像 URL'),
21 })
22
23 export const AuthSelectableAccountVoSchema = z.object({
24 platform: z.enum(AccountType).describe('平台类型'),
25 platformUid: z.string().describe('平台账号 UID'),
26 account: z.string().optional().describe('平台账号补充唯一标识'),
27 displayName: z.string().describe('平台账号展示名'),
28 avatarUrl: z.string().optional().describe('平台账号头像 URL'),
29 parentPlatformUid: z.string().optional().describe('父级平台账号 UID'),
30 })
31
32 export const AuthSessionStatusVoSchema = z.object({
33 sessionId: z.string().describe('授权 Session ID'),
34 status: z.enum(ChannelAuthSessionStatus).describe('授权 Session 状态'),
35 requiresSelection: z.boolean().describe('是否需要选择二级账号'),
36 errorCode: z.number().optional().describe('授权失败错误码'),
37 expiresAt: z.coerce.date().optional().describe('授权 Session 过期时间'),
38 accountId: z.string().optional().describe('首个本地账号 ID'),
39 accountIds: z.array(z.string()).optional().describe('本地账号 ID 列表'),
40 accounts: z.array(AuthConnectedAccountVoSchema).optional().describe('已连接账号列表'),
41 selectableAccounts: z.array(AuthSelectableAccountVoSchema).optional().describe('可选择的平台账号列表'),
42 })
43
44 export class AuthSessionStatusVo extends createZodDto(
45 AuthSessionStatusVoSchema,
46 'AuthSessionStatusVo',
47 ) {}
48
48 lines TYPESCRIPT