首次提交
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
// ========== 用户 ==========
|
||||
export interface IUser {
|
||||
id: string
|
||||
phone?: string
|
||||
nickname?: string
|
||||
avatar?: string
|
||||
bio?: string
|
||||
motto?: string
|
||||
privacy: PrivacyLevel
|
||||
points: number
|
||||
createdAt: string
|
||||
}
|
||||
|
||||
// ========== 打卡 ==========
|
||||
export interface ICheckInItem {
|
||||
id: string
|
||||
userId: string
|
||||
name: string
|
||||
icon?: string
|
||||
category: CheckInCategory
|
||||
dailyGoal?: string
|
||||
cycleType: CycleType
|
||||
privacy: PrivacyLevel
|
||||
status: ItemStatus
|
||||
createdAt: string
|
||||
}
|
||||
|
||||
export interface ICheckInRecord {
|
||||
id: string
|
||||
itemId: string
|
||||
userId: string
|
||||
checkDate: string
|
||||
status: RecordStatus
|
||||
note?: string
|
||||
images?: string[]
|
||||
}
|
||||
|
||||
// ========== 枚举 ==========
|
||||
export type CheckInCategory =
|
||||
| 'study' | 'health' | 'habit' | 'hobby' | 'goal'
|
||||
|
||||
export type CycleType =
|
||||
| 'daily' | 'weekly' | 'every_other_day' | 'custom'
|
||||
|
||||
export type PrivacyLevel = 1 | 2 | 3
|
||||
// 1 = public, 2 = friends_only, 3 = private
|
||||
|
||||
export type ItemStatus = 'active' | 'paused' | 'archived' | 'deleted'
|
||||
|
||||
export type RecordStatus = 'normal' | 'makeup'
|
||||
|
||||
export type Rarity = 'bronze' | 'silver' | 'gold'
|
||||
|
||||
// ========== 社交 ==========
|
||||
export interface IGroup {
|
||||
id: string
|
||||
name: string
|
||||
cover?: string
|
||||
intro?: string
|
||||
type: 'public' | 'private'
|
||||
maxMember: number
|
||||
}
|
||||
|
||||
// ========== API 响应 ==========
|
||||
export interface ApiResponse<T = unknown> {
|
||||
code: number
|
||||
message: string
|
||||
data?: T
|
||||
}
|
||||
Reference in New Issue
Block a user