File size: 1,840 Bytes
d5dffcf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90d7999
 
 
 
 
 
71ce6d2
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from pydantic import BaseModel
from typing import Optional

class UserRegister(BaseModel):
    account: str   
    password: str  
    email: str     
    phone: str     
    name: str      
    gender: str
    avatarDataUrl: Optional[str] = None
    age: Optional[int] = None
    country: Optional[str] = None
    region: Optional[str] = None
    intro: Optional[str] = None

class UserLogin(BaseModel):
    account: str   
    password: str

class UserUpdate(BaseModel):
    name: Optional[str] = None
    intro: Optional[str] = None
    age: Optional[int] = None
    country: Optional[str] = None
    region: Optional[str] = None
    gender: Optional[str] = None
    avatarDataUrl: Optional[str] = None

class PasswordReset(BaseModel):
    old_password: str
    new_password: str

class InteractionToggle(BaseModel):
    item_id: str
    user_id: str 
    action_type: str 
    is_active: bool

class CommentCreate(BaseModel):
    item_id: str
    author: str 
    content: str
    reply_to_user: Optional[str] = None
    parent_id: Optional[str] = None 

class ItemCreate(BaseModel):
    type: str
    title: str
    shortDesc: str
    fullDesc: str
    link: str
    coverUrl: Optional[str] = None
    author: str 
    price: float = 0.0

class FollowToggle(BaseModel):
    user_id: str
    target_account: str
    is_active: bool

class PrivateMessage(BaseModel):
    sender: str
    receiver: str
    content: str

class PrivacySettings(BaseModel):
    follows: bool
    likes: bool
    favorites: bool
    downloads: bool

class ItemUpdate(BaseModel):
    title: Optional[str] = None
    shortDesc: Optional[str] = None
    fullDesc: Optional[str] = None
    link: Optional[str] = None
    coverUrl: Optional[str] = None
    price: Optional[float] = None