Program/mooc/schemas/goouc_fullexam_user.py

947 lines
32 KiB
Python
Raw Normal View History

from pydantic import BaseModel, Field
from typing import Optional, List, Union
from datetime import datetime
from decimal import Decimal
from pydantic import field_validator
class FullExamUserBase(BaseModel):
id: Optional[int] = Field(None, ge=0, description="用户ID")
weid: Union[int, str] = Field(..., description="站点 ID")
openid: str = Field(..., max_length=255, description="用户标识")
unionid: Optional[str] = Field(None, max_length=255, description="联合用户标识")
nickname: Optional[str] = Field(None, max_length=255, description="用户昵称 可保存特殊符号")
headimg: Optional[str] = Field(None, max_length=255, description="用户头像")
name: Optional[str] = Field(None, max_length=50, description="用户姓名")
2025-01-15 20:26:58 +08:00
phone: Optional[str] = Field(None, max_length=11, description="手机号", pattern=r"^\d{11}$")
gradeid: Optional[int] = Field(None, ge=0, description="选择年级ID")
classid: Optional[int] = Field(None, ge=0, description="参加班级的ID")
groupid: Optional[int] = Field(None, ge=0, description="群组ID")
nativeplace: Optional[str] = Field(None, max_length=255, description="籍贯")
province: Optional[str] = Field(None, max_length=255, description="")
city: Optional[str] = Field(None, max_length=255, description="")
county: Optional[str] = Field(None, max_length=255, description="")
ismember: Optional[int] = Field(2, ge=1, le=2, description="是否是会员 1 是会员 2不是默认为2")
password: Optional[str] = Field(None, max_length=255, description="用户登录密码")
member_endtime: Optional[str] = Field(None, max_length=255, description="会员到期时间")
status: Optional[int] = Field(1, ge=0, le=1, description="是否拉黑默认为1")
last_login_time: int = Field(..., description="最近一次登录时间Unix 时间戳")
integral: Optional[int] = Field(0, ge=0, description="用户积分数默认为0")
balance: Optional[Decimal] = Field(Decimal('0.00'), ge=0, description="用户余额默认为0.00")
qrcode: Optional[str] = Field(None, max_length=255, description="用户二维码路径")
pid: Optional[int] = Field(0, ge=0, description="用户自己注册 为0 扫描其他人二维码 为二维码人的ID默认为0")
istatus: Optional[int] = Field(1, ge=0, le=1, description="是否删除的标识默认为1")
createtime: int = Field(..., description="创建时间Unix 时间戳")
id_card: Optional[str] = Field(None, max_length=255, description="身份证号")
student_id: Optional[str] = Field(None, max_length=200, description="学号")
school: Optional[str] = Field(None, max_length=255, description="学校")
level: Optional[int] = Field(0, ge=0, description="用户等级默认为0")
grade: Optional[str] = Field(None, max_length=255, description="年级")
count_day: Optional[int] = Field(0, ge=0, description="累计天数默认为0")
is_band: int = Field(0, ge=0, le=1, description="是否绑定微信 1是0否默认为0")
h5_openid: Optional[str] = Field("", max_length=255, description="H5 用户标识")
class Config:
from_attributes = True
class FullExamUserCreate(FullExamUserBase):
@field_validator('h5_openid', mode='before')
def set_h5_openid(cls, v, values):
if not v and 'openid' in values:
return values['openid']
return v or ""
class FullExamUserUpdate(FullExamUserBase):
weid: Optional[Union[int, str]] = None
openid: Optional[str] = None
unionid: Optional[str] = None
nickname: Optional[str] = None
headimg: Optional[str] = None
name: Optional[str] = None
phone: Optional[str] = None
gradeid: Optional[int] = None
classid: Optional[int] = None
groupid: Optional[int] = None
nativeplace: Optional[str] = None
province: Optional[str] = None
city: Optional[str] = None
county: Optional[str] = None
ismember: Optional[int] = None
password: Optional[str] = None
member_endtime: Optional[str] = None
status: Optional[int] = None
last_login_time: Optional[int] = None
integral: Optional[int] = None
balance: Optional[Decimal] = None
qrcode: Optional[str] = None
pid: Optional[int] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
id_card: Optional[str] = None
student_id: Optional[str] = None
school: Optional[str] = None
level: Optional[int] = None
grade: Optional[str] = None
count_day: Optional[int] = None
is_band: Optional[int] = None
h5_openid: Optional[str] = None
class FullExamUserInDB(FullExamUserBase):
id: int
last_login_time: Optional[datetime] = Field(None, description="最近一次登录时间")
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.last_login_time, int):
obj.last_login_time = datetime.fromtimestamp(obj.last_login_time)
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().model_validate(obj)
class Config:
from_attributes = True
class FullExamUserResponse(FullExamUserInDB):
pass # 可以根据需要添加额外的字段或调整现有字段
# 用于批量操作的模型
class FullExamUserListResponse(BaseModel):
data: List[FullExamUserResponse]
class UserCollectionPractionBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
testid: int = Field(..., ge=0, description="试题ID")
test_type: int = Field(..., ge=0, le=255, description="试题类型")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="创建时间Unix 时间戳")
iscollect: Optional[int] = Field(2, ge=0, le=2, description="是否收藏 1是 2不是默认为2")
class Config:
from_attributes = True
class UserCollectionPractionCreate(UserCollectionPractionBase):
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
class UserCollectionPractionUpdate(UserCollectionPractionBase):
weid: Optional[int] = None
uid: Optional[int] = None
testid: Optional[int] = None
test_type: Optional[int] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
iscollect: Optional[int] = None
class UserCollectionPractionInDB(UserCollectionPractionBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class Config:
from_attributes = True
class UserCollectionPractionResponse(UserCollectionPractionInDB):
pass # 可以根据需要添加额外的字段或调整现有字段
# 用于批量操作的模型
class UserCollectionPractionListResponse(BaseModel):
data: List[UserCollectionPractionResponse]
class UserDoexamBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
examid: int = Field(..., ge=0, description="已发布的试卷、考试或练习的ID")
franction: Optional[int] = Field(0, ge=0, description="得分情况默认为0")
usetime: str = Field('0', max_length=20, description="考试用时,默认为'0'")
level: Optional[str] = Field(None, max_length=255, description="级别")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="交卷时间Unix 时间戳")
recordid: int = Field(..., ge=0, description="考试记录id")
evaluation: int = Field(2, ge=1, le=3, description="评阅状态 1已评2未评默认2 3批改中")
class Config:
from_attributes = True
class UserDoexamCreate(UserDoexamBase):
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
class UserDoexamUpdate(UserDoexamBase):
weid: Optional[int] = None
uid: Optional[int] = None
examid: Optional[int] = None
franction: Optional[int] = None
usetime: Optional[str] = None
level: Optional[str] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
recordid: Optional[int] = None
evaluation: Optional[int] = None
class UserDoexamInDB(UserDoexamBase):
id: int
createtime: Optional[datetime] = Field(None, description="交卷时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class Config:
from_attributes = True
class UserDoexamResponse(UserDoexamInDB):
pass # 可以根据需要添加额外的字段或调整现有字段
# 用于批量操作的模型
class UserDoexamListResponse(BaseModel):
data: List[UserDoexamResponse]
class UserDoOtherExamBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
recordid: int = Field(..., ge=0, description="区分是哪一次考试的记录ID")
franction: Optional[int] = Field(0, ge=0, description="得分情况默认为0")
usetime: str = Field('0', max_length=20, description="考试用时,默认为'0'")
level: Optional[str] = Field(None, max_length=255, description="级别")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="交卷时间Unix 时间戳")
type: Optional[int] = Field(None, ge=2, le=3, description="类型 2-优先未做 3-智能考试")
class Config:
from_attributes = True
class UserDoOtherExamCreate(UserDoOtherExamBase):
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
class UserDoOtherExamUpdate(UserDoOtherExamBase):
weid: Optional[int] = None
uid: Optional[int] = None
recordid: Optional[int] = None
franction: Optional[int] = None
usetime: Optional[str] = None
level: Optional[str] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
type: Optional[int] = None
class UserDoOtherExamInDB(UserDoOtherExamBase):
id: int
createtime: Optional[datetime] = Field(None, description="交卷时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class Config:
from_attributes = True
class UserDoOtherExamResponse(UserDoOtherExamInDB):
pass # 可以根据需要添加额外的字段或调整现有字段
# 用于批量操作的模型
class UserDoOtherExamListResponse(BaseModel):
data: List[UserDoOtherExamResponse]
class UserDoOtherExamAnswerBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
recordid: int = Field(..., ge=0, description="区分是哪一次考试的记录ID")
testid: int = Field(..., ge=0, description="试题ID")
test_type: int = Field(..., ge=0, le=255, description="试题类型")
uanswer: Optional[str] = Field(None, description="用户答案")
franction: Optional[int] = Field(0, ge=0, description="得分情况默认为0")
isright: int = Field(..., ge=0, le=1, description="是否正确")
ischeck: Optional[int] = Field(1, ge=0, le=1, description="是否批改 默认为已批改")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="创建时间Unix 时间戳")
type: Optional[int] = Field(None, ge=2, le=3, description="类型 2-优先未做 3-智能考试")
class Config:
from_attributes = True
class UserDoOtherExamAnswerCreate(UserDoOtherExamAnswerBase):
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
class UserDoOtherExamAnswerUpdate(UserDoOtherExamAnswerBase):
weid: Optional[int] = None
uid: Optional[int] = None
recordid: Optional[int] = None
testid: Optional[int] = None
test_type: Optional[int] = None
uanswer: Optional[str] = None
franction: Optional[int] = None
isright: Optional[int] = None
ischeck: Optional[int] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
type: Optional[int] = None
class UserDoOtherExamAnswerInDB(UserDoOtherExamAnswerBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class Config:
from_attributes = True
class UserDoOtherExamAnswerResponse(UserDoOtherExamAnswerInDB):
pass # 可以根据需要添加额外的字段或调整现有字段
# 用于批量操作的模型
class UserDoOtherExamAnswerListResponse(BaseModel):
data: List[UserDoOtherExamAnswerResponse]
class UserExamAnswerBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
examid: int = Field(..., ge=0, description="已发布的试卷、考试或练习的ID")
testid: int = Field(..., ge=0, description="试题ID")
test_type: int = Field(..., ge=0, le=255, description="试题类型")
uanswer: Optional[str] = Field(None, description="用户答案")
franction: Optional[int] = Field(0, ge=0, description="得分情况默认为0")
isright: int = Field(..., ge=0, le=1, description="是否正确")
ischeck: Optional[int] = Field(1, ge=0, le=1, description="是否批改 默认为已批改")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="创建时间Unix 时间戳")
recordid: Optional[int] = Field(None, ge=0, description="考试记录id")
type: Optional[int] = Field(None, ge=1, le=1, description="类型只有1-全真")
simple_score: Optional[int] = Field(None, ge=0, description="简答题评分")
comments: str = Field(..., description="简答题评语")
simple_evaluation: int = Field(2, ge=1, le=3, description="简答题评阅状态 1已批改默认2未3批改中")
class Config:
from_attributes = True
class UserExamAnswerCreate(UserExamAnswerBase):
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
class UserExamAnswerUpdate(UserExamAnswerBase):
weid: Optional[int] = None
uid: Optional[int] = None
examid: Optional[int] = None
testid: Optional[int] = None
test_type: Optional[int] = None
uanswer: Optional[str] = None
franction: Optional[int] = None
isright: Optional[int] = None
ischeck: Optional[int] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
recordid: Optional[int] = None
type: Optional[int] = None
simple_score: Optional[int] = None
comments: Optional[str] = None
simple_evaluation: Optional[int] = None
class UserExamAnswerInDB(UserExamAnswerBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class Config:
from_attributes = True
class UserExamAnswerResponse(UserExamAnswerInDB):
pass # 可以根据需要添加额外的字段或调整现有字段
# 用于批量操作的模型
class UserExamAnswerListResponse(BaseModel):
data: List[UserExamAnswerResponse]
class UserFormidBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
formid: str = Field(..., max_length=255, description="表单ID")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="创建时间Unix 时间戳")
class Config:
from_attributes = True
class UserFormidCreate(UserFormidBase):
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
class UserFormidUpdate(UserFormidBase):
weid: Optional[int] = None
uid: Optional[int] = None
formid: Optional[str] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
class UserFormidInDB(UserFormidBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class Config:
from_attributes = True
class UserFormidResponse(UserFormidInDB):
pass # 可以根据需要添加额外的字段或调整现有字段
# 用于批量操作的模型
class UserFormidListResponse(BaseModel):
data: List[UserFormidResponse]
class UserGiftBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
giftid: int = Field(..., ge=0, description="礼品ID")
createtime: int = Field(..., description="创建时间Unix 时间戳")
status: Optional[int] = Field(0, ge=0, le=255, description="状态默认为0")
updatetime: Optional[int] = Field(None, description="更新时间Unix 时间戳")
consignee_name: Optional[str] = Field(None, max_length=255, description="收货人姓名")
consignee_phone: Optional[str] = Field(None, max_length=255, description="收货人电话")
consignee_address: Optional[str] = Field(None, max_length=255, description="收货人地址")
class Config:
from_attributes = True
class UserGiftCreate(UserGiftBase):
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
class UserGiftUpdate(UserGiftBase):
weid: Optional[int] = None
uid: Optional[int] = None
giftid: Optional[int] = None
createtime: Optional[int] = None
status: Optional[int] = None
updatetime: Optional[int] = None
consignee_name: Optional[str] = None
consignee_phone: Optional[str] = None
consignee_address: Optional[str] = None
class UserGiftInDB(UserGiftBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
updatetime: Optional[datetime] = Field(None, description="更新时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
if isinstance(obj.updatetime, int) and obj.updatetime is not None:
obj.updatetime = datetime.fromtimestamp(obj.updatetime)
return super().from_orm(obj)
class Config:
from_attributes = True
class UserGiftResponse(UserGiftInDB):
pass # 可以根据需要添加额外的字段或调整现有字段
# 用于批量操作的模型
class UserGiftListResponse(BaseModel):
data: List[UserGiftResponse]
class UserKnowledgeCateBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(0, ge=0, description="用户ID")
cate: Optional[int] = Field(0, ge=0, description="知识点ID")
createtime: int = Field(..., description="创建时间Unix 时间戳")
istatus: Optional[int] = Field(1, ge=0, le=1, description="是否删除的标识默认为1")
class Config:
from_attributes = True
class UserKnowledgeCateCreate(UserKnowledgeCateBase):
pass
class UserKnowledgeCateUpdate(UserKnowledgeCateBase):
weid: Optional[int] = None
uid: Optional[int] = None
cate: Optional[int] = None
createtime: Optional[int] = None
istatus: Optional[int] = None
class UserKnowledgeCateInDB(UserKnowledgeCateBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class UserKnowledgeCateResponse(UserKnowledgeCateInDB):
pass
class UserKnowledgeCateListResponse(BaseModel):
data: List[UserKnowledgeCateResponse]
class UserMemberBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
status: Optional[int] = Field(2, ge=0, le=2, description="是否开启购买会员默认为2")
scale: Decimal = Field(Decimal('1.00'), ge=0, le=1, description="折扣比例默认为1.00")
info: Optional[str] = Field(None, description="详细信息")
price: Decimal = Field(Decimal('0.00'), ge=0, description="VIP单月价格默认为0.00")
istui: Optional[int] = Field(0, ge=0, description="推荐购买的默认为0")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="创建时间Unix 时间戳")
class Config:
from_attributes = True
class UserMemberCreate(UserMemberBase):
pass
class UserMemberUpdate(UserMemberBase):
weid: Optional[int] = None
status: Optional[int] = None
scale: Optional[Decimal] = None
info: Optional[str] = None
price: Optional[Decimal] = None
istui: Optional[int] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
class UserMemberInDB(UserMemberBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class UserMemberResponse(UserMemberInDB):
pass
class UserMemberListResponse(BaseModel):
data: List[UserMemberResponse]
class UserPoolBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(0, ge=0, description="用户ID")
poolid: Optional[int] = Field(0, ge=0, description="题库ID")
createtime: int = Field(..., description="创建时间Unix 时间戳")
istatus: Optional[int] = Field(1, ge=0, le=1, description="是否删除的标识默认为1")
paperid: int = Field(0, ge=0, description="试卷id")
class Config:
from_attributes = True
class UserPoolCreate(UserPoolBase):
pass
class UserPoolUpdate(UserPoolBase):
weid: Optional[int] = None
uid: Optional[int] = None
poolid: Optional[int] = None
createtime: Optional[int] = None
istatus: Optional[int] = None
paperid: Optional[int] = None
class UserPoolInDB(UserPoolBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class UserPoolResponse(UserPoolInDB):
pass
class UserPoolListResponse(BaseModel):
data: List[UserPoolResponse]
class UserQHighBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
user_id: int = Field(..., ge=0, description="用户ID")
question_id: int = Field(..., ge=0, description="试题ID")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
create_time: int = Field(..., description="创建时间Unix 时间戳")
class Config:
from_attributes = True
class UserQHighCreate(UserQHighBase):
pass
class UserQHighUpdate(UserQHighBase):
weid: Optional[int] = None
user_id: Optional[int] = None
question_id: Optional[int] = None
istatus: Optional[int] = None
create_time: Optional[int] = None
class UserQHighInDB(UserQHighBase):
id: int
create_time: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.create_time, int):
obj.create_time = datetime.fromtimestamp(obj.create_time)
return super().from_orm(obj)
class UserQHighResponse(UserQHighInDB):
pass
class UserQHighListResponse(BaseModel):
data: List[UserQHighResponse]
class UserQIntensiveBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
user_id: int = Field(..., ge=0, description="用户ID")
question_id: int = Field(..., ge=0, description="试题ID")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
create_time: int = Field(..., description="创建时间Unix 时间戳")
class Config:
from_attributes = True
class UserQIntensiveCreate(UserQIntensiveBase):
pass
class UserQIntensiveUpdate(UserQIntensiveBase):
weid: Optional[int] = None
user_id: Optional[int] = None
question_id: Optional[int] = None
istatus: Optional[int] = None
create_time: Optional[int] = None
class UserQIntensiveInDB(UserQIntensiveBase):
id: int
create_time: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.create_time, int):
obj.create_time = datetime.fromtimestamp(obj.create_time)
return super().from_orm(obj)
class UserQIntensiveResponse(UserQIntensiveInDB):
pass
class UserQIntensiveListResponse(BaseModel):
data: List[UserQIntensiveResponse]
class UserQTypeBase(BaseModel):
weid: Optional[int] = Field(0, ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
type_id: int = Field(..., ge=0, description="题型ID")
last_id: Optional[int] = Field(None, ge=0, description="最后退出时的题目ID")
istatus: Optional[int] = Field(1, ge=0, le=255, description="删除状态默认为1")
createtime: Optional[int] = Field(None, description="创建时间Unix 时间戳")
class Config:
from_attributes = True
class UserQTypeCreate(UserQTypeBase):
pass
class UserQTypeUpdate(UserQTypeBase):
weid: Optional[int] = None
uid: Optional[int] = None
type_id: Optional[int] = None
last_id: Optional[int] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
class UserQTypeInDB(UserQTypeBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int) and obj.createtime is not None:
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class UserQTypeResponse(UserQTypeInDB):
pass
class UserQTypeListResponse(BaseModel):
data: List[UserQTypeResponse]
class UserReadBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
noticeid: int = Field(..., ge=0, description="公告/活动/文章ID")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="创建时间Unix 时间戳")
class Config:
from_attributes = True
class UserReadCreate(UserReadBase):
pass
class UserReadUpdate(UserReadBase):
weid: Optional[int] = None
uid: Optional[int] = None
noticeid: Optional[int] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
class UserReadInDB(UserReadBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class UserReadResponse(UserReadInDB):
pass
class UserReadListResponse(BaseModel):
data: List[UserReadResponse]
class UserSpecialBase(BaseModel):
weid: Optional[int] = Field(0, ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
special_id: int = Field(..., ge=0, description="特殊ID")
last_id: Optional[int] = Field(None, ge=0, description="最后退出时的题目ID")
istatus: Optional[int] = Field(1, ge=0, le=255, description="删除状态默认为1")
createtime: Optional[int] = Field(None, description="创建时间Unix 时间戳")
class Config:
from_attributes = True
class UserSpecialCreate(UserSpecialBase):
pass
class UserSpecialUpdate(UserSpecialBase):
weid: Optional[int] = None
uid: Optional[int] = None
special_id: Optional[int] = None
last_id: Optional[int] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
class UserSpecialInDB(UserSpecialBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int) and obj.createtime is not None:
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class UserSpecialResponse(UserSpecialInDB):
pass
class UserSpecialListResponse(BaseModel):
data: List[UserSpecialResponse]
class UserSpequenceBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
user_id: int = Field(..., ge=0, description="用户ID")
question_id: int = Field(..., ge=0, description="下标ID这儿是顺序id")
lib_id: Optional[int] = Field(None, ge=0, description="题库id")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
create_time: int = Field(..., description="创建时间Unix 时间戳")
class Config:
from_attributes = True
class UserSpequenceCreate(UserSpequenceBase):
pass
class UserSpequenceUpdate(UserSpequenceBase):
weid: Optional[int] = None
user_id: Optional[int] = None
question_id: Optional[int] = None
lib_id: Optional[int] = None
istatus: Optional[int] = None
create_time: Optional[int] = None
class UserSpequenceInDB(UserSpequenceBase):
id: int
create_time: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.create_time, int):
obj.create_time = datetime.fromtimestamp(obj.create_time)
return super().from_orm(obj)
class UserSpequenceResponse(UserSpequenceInDB):
pass
class UserSpequenceListResponse(BaseModel):
data: List[UserSpequenceResponse]
class UserWrongPractionBase(BaseModel):
weid: int = Field(..., ge=0, description="站点 ID")
uid: int = Field(..., ge=0, description="用户ID")
testid: int = Field(..., ge=0, description="试题ID")
test_type: int = Field(..., ge=0, le=255, description="试题类型")
uanswer: Optional[str] = Field(None, description="用户答案")
istatus: Optional[int] = Field(1, ge=0, le=1, description="删除状态默认为1")
createtime: int = Field(..., description="创建时间Unix 时间戳")
iscollect: Optional[int] = Field(2, ge=0, le=2, description="是否收藏默认为2")
class Config:
from_attributes = True
class UserWrongPractionCreate(UserWrongPractionBase):
pass
class UserWrongPractionUpdate(UserWrongPractionBase):
weid: Optional[int] = None
uid: Optional[int] = None
testid: Optional[int] = None
test_type: Optional[int] = None
uanswer: Optional[str] = None
istatus: Optional[int] = None
createtime: Optional[int] = None
iscollect: Optional[int] = None
class UserWrongPractionInDB(UserWrongPractionBase):
id: int
createtime: Optional[datetime] = Field(None, description="创建时间")
@classmethod
def from_orm(cls, obj):
if isinstance(obj.createtime, int):
obj.createtime = datetime.fromtimestamp(obj.createtime)
return super().from_orm(obj)
class UserWrongPractionResponse(UserWrongPractionInDB):
pass
class UserWrongPractionListResponse(BaseModel):
data: List[UserWrongPractionResponse]