
- 在 mooc/models/__init__.py 中添加了 part3中数据库表的导入 - 新增了 mooc/crud/crud_goouc_fullexam.py 文件,实现了 goouc_fullexam 相关表的 CRUD 接口 - 添加了 Advert、Banji、Banner 等多个模型类的 CRUD 操作方法
1360 lines
47 KiB
Python
1360 lines
47 KiB
Python
from pydantic import BaseModel, Field
|
||
from datetime import datetime
|
||
from typing import Optional, List
|
||
from decimal import Decimal
|
||
from datetime import date
|
||
|
||
|
||
# 广告
|
||
class AdvertBase(BaseModel):
|
||
weid: Optional[int] = Field(0, ge=0, description="站点 ID")
|
||
homeId: Optional[str] = Field(None, max_length=255, description="首页广告id")
|
||
secondId: Optional[str] = Field(None, max_length=255, description="解析页广告id")
|
||
createtime: Optional[int] = Field(None, description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class AdvertCreate(AdvertBase):
|
||
pass
|
||
|
||
|
||
class AdvertUpdate(AdvertBase):
|
||
weid: Optional[int] = None
|
||
homeId: Optional[str] = None
|
||
secondId: Optional[str] = None
|
||
createtime: Optional[int] = None
|
||
|
||
|
||
class AdvertInDB(AdvertBase):
|
||
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 AdvertResponse(AdvertInDB):
|
||
pass
|
||
|
||
|
||
class AdvertListResponse(BaseModel):
|
||
data: List[AdvertResponse]
|
||
|
||
|
||
# 班级
|
||
class BanjiBase(BaseModel):
|
||
weid: Optional[int] = None
|
||
uidht: int
|
||
school_id: int
|
||
nianfen_id: int
|
||
xdgl_id: int
|
||
nid: int
|
||
name: str
|
||
bname: str
|
||
parentid: int
|
||
displayorder: int
|
||
enabled: bool
|
||
icon: str
|
||
banjikouhao: str
|
||
banxun: str
|
||
banjimubiao: str
|
||
bzrjy: str
|
||
description: str
|
||
styleid: int
|
||
linkurl: str
|
||
ishomepage: bool
|
||
status: Optional[int] = 0
|
||
icontype: bool
|
||
css: str
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class BanjiCreate(BanjiBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class BanjiUpdate(BanjiBase):
|
||
# 允许部分更新,所以所有字段都是可选的
|
||
weid: Optional[int] = None
|
||
uidht: Optional[int] = None
|
||
school_id: Optional[int] = None
|
||
nianfen_id: Optional[int] = None
|
||
xdgl_id: Optional[int] = None
|
||
nid: Optional[int] = None
|
||
name: Optional[str] = None
|
||
bname: Optional[str] = None
|
||
parentid: Optional[int] = None
|
||
displayorder: Optional[int] = None
|
||
enabled: Optional[bool] = None
|
||
icon: Optional[str] = None
|
||
banjikouhao: Optional[str] = None
|
||
banxun: Optional[str] = None
|
||
banjimubiao: Optional[str] = None
|
||
bzrjy: Optional[str] = None
|
||
description: Optional[str] = None
|
||
styleid: Optional[int] = None
|
||
linkurl: Optional[str] = None
|
||
ishomepage: Optional[bool] = None
|
||
status: Optional[int] = None
|
||
icontype: Optional[bool] = None
|
||
css: Optional[str] = None
|
||
|
||
|
||
class BanjiInDB(BanjiBase):
|
||
banji_id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
# 轮播图
|
||
class BannerBase(BaseModel):
|
||
weid: int
|
||
title: str = Field(..., max_length=255)
|
||
image: str = Field(..., max_length=255, description="图片路径")
|
||
type: Optional[int] = Field(1, ge=1, le=2, description="图片跳转方式 1本程序跳转 2外部链接")
|
||
link: Optional[str] = None
|
||
status: Optional[int] = Field(2, ge=1, le=2, description="图片状态 1 显示 2 不显示")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="是否删除的标识")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class BannerCreate(BannerBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class BannerUpdate(BannerBase):
|
||
weid: Optional[int] = None
|
||
title: Optional[str] = None
|
||
image: Optional[str] = None
|
||
type: Optional[int] = None
|
||
link: Optional[str] = None
|
||
status: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
|
||
|
||
class BannerInDB(BannerBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class BannerResponse(BannerInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class BannerListResponse(BaseModel):
|
||
data: List[BannerResponse]
|
||
|
||
|
||
class CategoryBase(BaseModel):
|
||
weid: int
|
||
name: str = Field(..., max_length=255, description="分类名称")
|
||
pid: Optional[str] = Field("0", max_length=255, description="分类父级,默认为顶级分类")
|
||
order: Optional[int] = Field(0, ge=0, le=99999, description="分类序号,默认为0")
|
||
status: Optional[int] = Field(1, ge=1, le=2, description="分类状态 1 显示 2 不显示")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="是否删除的标识")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CategoryCreate(CategoryBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class CategoryUpdate(CategoryBase):
|
||
weid: Optional[int] = None
|
||
name: Optional[str] = None
|
||
pid: Optional[str] = None
|
||
order: Optional[int] = None
|
||
status: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CategoryInDB(CategoryBase):
|
||
id: int
|
||
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CategoryResponse(CategoryInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class CategoryListResponse(BaseModel):
|
||
data: List[CategoryResponse]
|
||
|
||
|
||
# 兑换码
|
||
class CdkeyBase(BaseModel):
|
||
weid: int = Field(..., description="站点 ID")
|
||
cid: int = Field(..., description="分类 ID")
|
||
code: Optional[str] = Field(None, max_length=255, description="题库代码")
|
||
uid: int = Field(0, ge=0, description="用户 ID,默认为0表示未领取")
|
||
createtime: Optional[int] = Field(None, description="创建时间,Unix 时间戳")
|
||
usetime: Optional[int] = Field(None, description="使用时间,Unix 时间戳")
|
||
status: Optional[int] = Field(1, ge=1, le=2, description="状态 1未使用 2已使用")
|
||
kpool: Optional[str] = Field(None, max_length=2000, description="到期时间或相关数据")
|
||
display: int = Field(1, ge=1, le=2, description="启用状态 1启用 2作废")
|
||
day_num: Optional[int] = Field(None, ge=0, description="激活天数")
|
||
endtime: Optional[int] = Field(None, description="结束时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CdkeyCreate(CdkeyBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class CdkeyUpdate(CdkeyBase):
|
||
weid: Optional[int] = None
|
||
cid: Optional[int] = None
|
||
code: Optional[str] = None
|
||
uid: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
usetime: Optional[int] = None
|
||
status: Optional[int] = None
|
||
kpool: Optional[str] = None
|
||
display: Optional[int] = None
|
||
day_num: Optional[int] = None
|
||
endtime: Optional[int] = None
|
||
|
||
|
||
class CdkeyInDB(CdkeyBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CdkeyResponse(CdkeyInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class CdkeyListResponse(BaseModel):
|
||
data: List[CdkeyResponse]
|
||
|
||
|
||
class CdkeyCateBase(BaseModel):
|
||
weid: int = Field(..., description="站点 ID")
|
||
title: str = Field(..., max_length=255, description="分类标题")
|
||
createtime: Optional[int] = Field(None, description="创建时间,Unix 时间戳")
|
||
qpool: Optional[str] = Field(None, max_length=2000, description="题库")
|
||
kpool: Optional[str] = Field(None, max_length=2000, description="知识库")
|
||
msg: Optional[str] = Field(None, max_length=255, description="提示信息")
|
||
status: Optional[int] = Field(1, ge=1, le=2, description="状态 1启用 2禁用")
|
||
is_delete: Optional[int] = Field(1, ge=1, le=2, description="删除状态 1正常 2删除")
|
||
papers: str = Field(..., max_length=2000, description="试卷 IDs")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CdkeyCateCreate(CdkeyCateBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class CdkeyCateUpdate(CdkeyCateBase):
|
||
weid: Optional[int] = None
|
||
title: Optional[str] = None
|
||
createtime: Optional[int] = None
|
||
qpool: Optional[str] = None
|
||
kpool: Optional[str] = None
|
||
msg: Optional[str] = None
|
||
status: Optional[int] = None
|
||
is_delete: Optional[int] = None
|
||
papers: Optional[str] = None
|
||
|
||
|
||
class CdkeyCateInDB(CdkeyCateBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CdkeyCateResponse(CdkeyCateInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class CdkeyCateListResponse(BaseModel):
|
||
data: List[CdkeyCateResponse]
|
||
|
||
|
||
class CdkeysBase(BaseModel):
|
||
weid: int = Field(..., description="站点 ID")
|
||
code_id: int = Field(..., ge=0, description="兑换码 ID")
|
||
kpool_id: int = Field(..., ge=0, description="绑定对象 ID(试卷或题库)")
|
||
type: int = Field(0, ge=0, le=2, description="绑定类型 1 试卷 2 题库")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CdkeysCreate(CdkeysBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class CdkeysUpdate(CdkeysBase):
|
||
weid: Optional[int] = None
|
||
code_id: Optional[int] = None
|
||
kpool_id: Optional[int] = None
|
||
type: Optional[int] = None
|
||
|
||
|
||
class CdkeysInDB(CdkeysBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class CdkeysResponse(CdkeysInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class CdkeysListResponse(BaseModel):
|
||
data: List[CdkeysResponse]
|
||
|
||
|
||
# 练习
|
||
class ExerciseBase(BaseModel):
|
||
weid: Optional[int] = Field(0, ge=0, description="站点 ID,默认为0")
|
||
uid: int = Field(..., ge=0, description="用户 ID")
|
||
testid: int = Field(..., ge=0, description="测试题 ID")
|
||
test_type: Optional[int] = Field(None, description="测试类型")
|
||
uanswer: Optional[str] = Field(None, max_length=255, description="用户答案")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="状态 1有效 2无效")
|
||
createtime: Optional[int] = Field(None, description="创建时间,Unix 时间戳")
|
||
isright: int = Field(..., ge=0, le=1, description="是否正确 1正确 0错误")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class ExerciseCreate(ExerciseBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class ExerciseUpdate(ExerciseBase):
|
||
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
|
||
isright: Optional[int] = None
|
||
|
||
|
||
class ExerciseInDB(ExerciseBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class ExerciseResponse(ExerciseInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class ExerciseListResponse(BaseModel):
|
||
data: List[ExerciseResponse]
|
||
|
||
|
||
class FeedbackBase(BaseModel):
|
||
weid: Optional[int] = Field(0, ge=0, description="站点 ID,默认为0")
|
||
uid: int = Field(..., ge=0, description="用户 ID")
|
||
testid: Optional[int] = Field(None, ge=0, description="测试题 ID")
|
||
relation: Optional[str] = Field(None, max_length=255, description="关联信息")
|
||
content: Optional[str] = Field(None, description="反馈内容")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="状态 1有效 2无效")
|
||
createtime: Optional[int] = Field(None, description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class FeedbackCreate(FeedbackBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class FeedbackUpdate(FeedbackBase):
|
||
weid: Optional[int] = None
|
||
uid: Optional[int] = None
|
||
testid: Optional[int] = None
|
||
relation: Optional[str] = None
|
||
content: Optional[str] = None
|
||
istatus: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
|
||
|
||
class FeedbackInDB(FeedbackBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class FeedbackResponse(FeedbackInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class FeedbackListResponse(BaseModel):
|
||
data: List[FeedbackResponse]
|
||
|
||
|
||
class GiftBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID,默认为0")
|
||
name: str = Field(..., max_length=100, description="礼品名称")
|
||
price: int = Field(100, ge=0, description="礼品市场价格,默认为100")
|
||
coins: int = Field(500, ge=0, description="礼品所需金币,默认为500")
|
||
image: str = Field(..., max_length=255, description="礼品图片路径")
|
||
about: str = Field(..., description="礼品描述")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class GiftCreate(GiftBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class GiftUpdate(GiftBase):
|
||
weid: Optional[int] = None
|
||
name: Optional[str] = None
|
||
price: Optional[int] = None
|
||
coins: Optional[int] = None
|
||
image: Optional[str] = None
|
||
about: Optional[str] = None
|
||
|
||
|
||
class GiftInDB(GiftBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class GiftResponse(GiftInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class GiftListResponse(BaseModel):
|
||
data: List[GiftResponse]
|
||
|
||
|
||
class IndexBtnBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID,默认为0")
|
||
doid: int = Field(..., ge=0, description="操作 ID,默认为0")
|
||
title: str = Field(..., max_length=255, description="按钮标题")
|
||
icon: Optional[str] = Field(None, max_length=255, description="图片路径")
|
||
status: Optional[int] = Field(1, ge=1, le=2, description="显示状态 1 显示 2 不显示")
|
||
sort: Optional[int] = Field(0, ge=0, description="排序,默认为0")
|
||
types: int = Field(1, ge=1, le=2, description="类型 1模块功能 2题库")
|
||
library_id: int = Field(..., ge=0, description="关联的题库或模块 ID")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class IndexBtnCreate(IndexBtnBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class IndexBtnUpdate(IndexBtnBase):
|
||
weid: Optional[int] = None
|
||
doid: Optional[int] = None
|
||
title: Optional[str] = None
|
||
icon: Optional[str] = None
|
||
status: Optional[int] = None
|
||
sort: Optional[int] = None
|
||
types: Optional[int] = None
|
||
library_id: Optional[int] = None
|
||
|
||
|
||
class IndexBtnInDB(IndexBtnBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class IndexBtnResponse(IndexBtnInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class IndexBtnListResponse(BaseModel):
|
||
data: List[IndexBtnResponse]
|
||
|
||
|
||
class KnowledgeBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
one: Optional[int] = Field(0, ge=0, description="一级分类,默认为0")
|
||
two: Optional[int] = Field(0, ge=0, description="二级分类,默认为0")
|
||
three: Optional[int] = Field(0, ge=0, description="三级分类,默认为0")
|
||
title: str = Field(..., max_length=255, description="知识点标题")
|
||
content: str = Field(..., description="知识点内容")
|
||
status: Optional[int] = Field(2, ge=1, le=2, description="显示状态 1显示 2不显示,默认为2")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="删除标识 1正常 2删除,默认为1")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class KnowledgeCreate(KnowledgeBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class KnowledgeUpdate(KnowledgeBase):
|
||
weid: Optional[int] = None
|
||
one: Optional[int] = None
|
||
two: Optional[int] = None
|
||
three: Optional[int] = None
|
||
title: Optional[str] = None
|
||
content: Optional[str] = None
|
||
status: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
|
||
|
||
class KnowledgeInDB(KnowledgeBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class KnowledgeResponse(KnowledgeInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class KnowledgeListResponse(BaseModel):
|
||
data: List[KnowledgeResponse]
|
||
|
||
|
||
class KnowledgeCateBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
name: str = Field(..., max_length=255, description="知识点分类名称")
|
||
type: Optional[int] = Field(1, ge=1, le=2, description="分类类型 1刷知识点 2考前必备,默认为1")
|
||
pid: Optional[int] = Field(0, ge=0, description="父级分类 ID,默认为0表示顶级分类")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="删除标识 1正常 2删除,默认为1")
|
||
status: Optional[int] = Field(1, ge=1, le=2, description="显示状态 1显示 2隐藏,默认为1")
|
||
price: Decimal = Field(Decimal('0.00'), ge=0, description="价格,默认为0.00")
|
||
create_time: int = Field(..., description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class KnowledgeCateCreate(KnowledgeCateBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class KnowledgeCateUpdate(KnowledgeCateBase):
|
||
weid: Optional[int] = None
|
||
name: Optional[str] = None
|
||
type: Optional[int] = None
|
||
pid: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
status: Optional[int] = None
|
||
price: Optional[Decimal] = None
|
||
create_time: Optional[int] = None
|
||
|
||
|
||
class KnowledgeCateInDB(KnowledgeCateBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class KnowledgeCateResponse(KnowledgeCateInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class KnowledgeCateListResponse(BaseModel):
|
||
data: List[KnowledgeCateResponse]
|
||
|
||
|
||
class NoticeBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
type: int = Field(..., ge=1, le=2, description="公告类型,默认值需在数据库中明确")
|
||
title: str = Field(..., max_length=255, description="公告标题")
|
||
content: str = Field(..., description="公告内容")
|
||
image: Optional[str] = Field(None, max_length=255, description="活动公告的图片路径")
|
||
readnum: Optional[int] = Field(0, ge=0, description="阅读量,默认为0")
|
||
status: Optional[int] = Field(2, ge=1, le=2, description="公告状态 1显示 2不显示,默认为2")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="删除标识 1正常 2删除,默认为1")
|
||
video_audio_id: Optional[str] = Field(None, max_length=255, description="音/视频ID")
|
||
pcate: Optional[int] = Field(None, ge=0, description="文章所属分类")
|
||
ccate: Optional[int] = Field(None, ge=0, description="文章所属子分类")
|
||
article_type: Optional[int] = Field(None, ge=1, le=2, description="文章类型 1文章 2视频")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class NoticeCreate(NoticeBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class NoticeUpdate(NoticeBase):
|
||
weid: Optional[int] = None
|
||
type: Optional[int] = None
|
||
title: Optional[str] = None
|
||
content: Optional[str] = None
|
||
image: Optional[str] = None
|
||
readnum: Optional[int] = None
|
||
status: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
video_audio_id: Optional[str] = None
|
||
pcate: Optional[int] = None
|
||
ccate: Optional[int] = None
|
||
article_type: Optional[int] = None
|
||
|
||
|
||
class NoticeInDB(NoticeBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class NoticeResponse(NoticeInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class NoticeListResponse(BaseModel):
|
||
data: List[NoticeResponse]
|
||
|
||
|
||
class OrderBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
type: int = Field(..., ge=1, le=2, description="购买类型 1购买考试 2VIP购买")
|
||
out_trade_no: str = Field(..., max_length=255, description="订单号")
|
||
userid: int = Field(..., ge=0, description="用户 ID")
|
||
openid: Optional[str] = Field(None, max_length=255, description="购买者的 openid")
|
||
order_status: int = Field(..., ge=0, le=1, description="订单状态 0未支付 1已支付")
|
||
all_money: Decimal = Field(Decimal('0.00'), ge=0, description="总金额,默认为0.00")
|
||
true_money: Decimal = Field(..., ge=0, description="实付款")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
paytime: Optional[int] = Field(None, description="支付时间,Unix 时间戳")
|
||
msg: Optional[str] = Field(None, max_length=255, description="消息")
|
||
dataid: Optional[int] = Field(None, ge=0, description="关联数据 ID")
|
||
transaction_sn: Optional[str] = Field(None, max_length=255, description="第三方流水号")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="订单删除标识 1正常 2删除,默认为1")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class OrderCreate(OrderBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class OrderUpdate(OrderBase):
|
||
weid: Optional[int] = None
|
||
type: Optional[int] = None
|
||
out_trade_no: Optional[str] = None
|
||
userid: Optional[int] = None
|
||
openid: Optional[str] = None
|
||
order_status: Optional[int] = None
|
||
all_money: Optional[Decimal] = None
|
||
true_money: Optional[Decimal] = None
|
||
createtime: Optional[int] = None
|
||
paytime: Optional[int] = None
|
||
msg: Optional[str] = None
|
||
dataid: Optional[int] = None
|
||
transaction_sn: Optional[str] = None
|
||
istatus: Optional[int] = None
|
||
|
||
|
||
class OrderInDB(OrderBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class OrderResponse(OrderInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class OrderListResponse(BaseModel):
|
||
data: List[OrderResponse]
|
||
|
||
|
||
class PaperBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
title: str = Field(..., max_length=255, description="试卷标题")
|
||
type: Optional[int] = Field(1, ge=1, le=3, description="试卷类型,默认为1")
|
||
franction: str = Field(..., description="每个题型有多少及每个题多少分")
|
||
total_franction: Optional[int] = Field(0, ge=0, description="试卷总分值,默认为0")
|
||
status: Optional[int] = Field(2, ge=1, le=2, description="试卷状态 默认为2 待完善试卷 1 已完善试卷")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="是否删除的标识,默认为1")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
dnum: Optional[int] = Field(0, ge=0, description="做题人数,默认为0")
|
||
displayorder: Optional[int] = Field(0, ge=0, description="显示顺序,默认为0")
|
||
price: Decimal = Field(Decimal('0.00'), ge=0, description="试卷价格,默认为0.00")
|
||
times: int = Field(..., ge=0, description="试卷时间单位分")
|
||
is_repeat: int = Field(2, ge=1, le=2, description="重复答题 1可以 2否,默认为2")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class PaperCreate(PaperBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class PaperUpdate(PaperBase):
|
||
weid: Optional[int] = None
|
||
title: Optional[str] = None
|
||
type: Optional[int] = None
|
||
franction: Optional[str] = None
|
||
total_franction: Optional[int] = None
|
||
status: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
dnum: Optional[int] = None
|
||
displayorder: Optional[int] = None
|
||
price: Optional[Decimal] = None
|
||
times: Optional[int] = None
|
||
is_repeat: Optional[int] = None
|
||
|
||
|
||
class PaperInDB(PaperBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class PaperResponse(PaperInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class PaperListResponse(BaseModel):
|
||
data: List[PaperResponse]
|
||
|
||
|
||
class PaperTestBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
paperid: str = Field(..., max_length=255,
|
||
description="试卷 ID(注意:在表注释中提到的是试卷标题,但字段名为 paperid,通常应为试卷 ID)")
|
||
testid: int = Field(..., ge=0, description="试题 ID")
|
||
test_type: int = Field(..., ge=0, description="题型类型")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="是否删除的标识,默认为1")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class PaperTestCreate(PaperTestBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class PaperTestUpdate(PaperTestBase):
|
||
weid: Optional[int] = None
|
||
paperid: Optional[str] = None
|
||
testid: Optional[int] = None
|
||
test_type: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
|
||
|
||
class PaperTestInDB(PaperTestBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class PaperTestResponse(PaperTestInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class PaperTestListResponse(BaseModel):
|
||
data: List[PaperTestResponse]
|
||
|
||
|
||
class PhoneCodeBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
phone: str = Field(..., min_length=11, max_length=11, regex=r"^\d{11}$", description="手机号码")
|
||
code: int = Field(..., ge=100000, le=999999, description="手机验证码,通常为6位数字")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class PhoneCodeCreate(PhoneCodeBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class PhoneCodeUpdate(PhoneCodeBase):
|
||
weid: Optional[int] = None
|
||
phone: Optional[str] = None
|
||
code: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
|
||
|
||
class PhoneCodeInDB(PhoneCodeBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class PhoneCodeResponse(PhoneCodeInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class PhoneCodeListResponse(BaseModel):
|
||
data: List[PhoneCodeResponse]
|
||
|
||
|
||
class QYearBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
name: str = Field(..., max_length=255, description="年份名称")
|
||
status: Optional[int] = Field(1, ge=1, le=2, description="状态 1 显示 2不显示,默认为1")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="是否删除的标识,默认为1")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class QYearCreate(QYearBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class QYearUpdate(QYearBase):
|
||
weid: Optional[int] = None
|
||
name: Optional[str] = None
|
||
status: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
|
||
|
||
class QYearInDB(QYearBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class QYearResponse(QYearInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class QYearListResponse(BaseModel):
|
||
data: List[QYearResponse]
|
||
|
||
|
||
class SchoolBase(BaseModel):
|
||
weid: Optional[int] = Field(None, ge=0, description="站点 ID")
|
||
school_name: Optional[str] = Field(None, max_length=200, description="学校名称")
|
||
school_logo: Optional[str] = Field(None, max_length=200, description="学校 Logo URL")
|
||
school_info_intro: Optional[str] = Field(None, description="学校描述")
|
||
addtime: Optional[int] = Field(None, description="添加时间,Unix 时间戳")
|
||
mu_str: Optional[str] = Field(None, max_length=30, description="未知字段(mu_str)")
|
||
status: Optional[int] = Field(1, ge=1, le=2, description="状态,默认为1")
|
||
line_status: Optional[int] = Field(1, ge=1, le=2, description="线路状态,默认为1")
|
||
cookbook_status: Optional[int] = Field(1, ge=1, le=2, description="食谱状态,默认为1")
|
||
class_notice_status: Optional[int] = Field(1, ge=1, le=2, description="班级公告审核状态;1=不需要;2=需要,默认为1")
|
||
school_type: Optional[int] = Field(0, ge=0, description="学校类型,默认为0")
|
||
host_url: Optional[str] = Field(None, description="官网地址")
|
||
on_school: Optional[int] = Field(0, ge=0, description="在校天数,默认为0")
|
||
begin_day: Optional[int] = Field(0, ge=0, description="开始上课周数,默认为0")
|
||
am_much: Optional[int] = Field(0, ge=0, description="上午课数,默认为0")
|
||
pm_much: Optional[int] = Field(0, ge=0, description="下午课数,默认为0")
|
||
ye_much: Optional[int] = Field(0, ge=0, description="晚上课数,默认为0")
|
||
line_type: Optional[str] = Field(None, description="班级圈类别")
|
||
appointment: Optional[str] = Field(None, description="预约类别")
|
||
parents: Optional[int] = Field(3, ge=0, description="学生可绑定家长数,默认为3")
|
||
add_time: Optional[int] = Field(0, ge=0, description="添加时间,默认为0")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class SchoolCreate(SchoolBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class SchoolUpdate(SchoolBase):
|
||
school_id: Optional[int] = None # 允许更新时指定学校 ID
|
||
|
||
|
||
class SchoolInDB(SchoolBase):
|
||
school_id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class SchoolResponse(SchoolInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class SchoolListResponse(BaseModel):
|
||
data: List[SchoolResponse]
|
||
|
||
|
||
class SettingBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
mchid: Optional[str] = Field(None, max_length=50, description="微信支付商户ID")
|
||
pay_secret: Optional[str] = Field(None, max_length=50, description="支付密匙")
|
||
pay_open: Optional[int] = Field(0, ge=0, le=1, description="支付开启 1开启")
|
||
signcertpath: Optional[str] = Field(None, max_length=255, description="商户CERT证书路径")
|
||
signkeypath: Optional[str] = Field(None, max_length=255, description="商户KEY证书路径")
|
||
AccessKeyId: Optional[str] = Field(None, max_length=255, description="阿里云账号")
|
||
AccessKeySecret: Optional[str] = Field(None, max_length=255, description="阿里云秘钥")
|
||
SignName: Optional[str] = Field(None, max_length=255, description="阿里云短信签名")
|
||
TemplateCode: Optional[str] = Field(None, max_length=255, description="阿里云验证码模板id")
|
||
RegionId: Optional[str] = Field(None, max_length=255, description="阿里云视频点播区域名")
|
||
banner_height: Optional[int] = Field(232, ge=0, description="轮播图高")
|
||
shareupper: Optional[int] = Field(0, ge=0, description="每日分享获得积分上限")
|
||
share_title: Optional[str] = Field(None, max_length=255, description="分享标题")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="是否删除的标识,默认为1")
|
||
is_display: Optional[int] = Field(1, ge=1, le=2, description="公告是否显示,默认为1")
|
||
display_num: Optional[int] = Field(5, ge=0, description="公告显示条数,默认为5")
|
||
use_integral_num: Optional[int] = Field(None, ge=0, description="高频题消耗积分个数")
|
||
franction: Optional[str] = Field(None, description="每个题型有多少每题多少分")
|
||
paper_time: Optional[int] = Field(None, ge=0, description="考试时长单位(分)")
|
||
reward_integral: Optional[int] = Field(None, ge=0, description="答对一题奖励积分数量")
|
||
medal: Optional[str] = Field(None, description="勋章设置")
|
||
share_integral: Optional[int] = Field(None, ge=0, description="每次分享可得积分")
|
||
sms_accessKeyId: Optional[str] = Field(None, max_length=255, description="短信accesskeyid")
|
||
sms_accessKeySecret: Optional[str] = Field(None, max_length=255, description="短信accesskeysecret")
|
||
about: Optional[str] = Field(None, description="关于我们")
|
||
wechat_number: Optional[str] = Field(None, max_length=255, description="商家微信号")
|
||
standard: Optional[int] = Field(5, ge=0, description="每日答题达标数量")
|
||
pass_: Optional[str] = Field(None, max_length=255, description="通过条件")
|
||
good: Optional[str] = Field(None, max_length=255, description="良好条件")
|
||
excellent: Optional[str] = Field(None, max_length=255, description="优秀条件")
|
||
randoms: Optional[str] = Field(None, max_length=255, description="随机条件")
|
||
randoms_icon: Optional[str] = Field(None, max_length=255, description="随机图标")
|
||
randoms_rule: Optional[str] = Field(None, max_length=255, description="随机规则")
|
||
notdone: Optional[str] = Field(None, max_length=255, description="未完成条件")
|
||
notdone_icon: Optional[str] = Field(None, max_length=255, description="未完成图标")
|
||
notdone_rule: Optional[str] = Field(None, max_length=255, description="未完成规则")
|
||
qhig: Optional[str] = Field(None, max_length=255, description="未知字段(qhig)")
|
||
qhig_icon: Optional[str] = Field(None, max_length=255, description="未知字段(qhig_icon)")
|
||
qhig_rule: Optional[str] = Field(None, max_length=255, description="未知字段(qhig_rule)")
|
||
qint: Optional[str] = Field(None, max_length=255, description="未知字段(qint)")
|
||
qint_icon: Optional[str] = Field(None, max_length=255, description="未知字段(qint_icon)")
|
||
qint_rule: Optional[str] = Field(None, max_length=255, description="未知字段(qint_rule)")
|
||
qhot: Optional[str] = Field(None, max_length=255, description="未知字段(qhot)")
|
||
qhot_icon: Optional[str] = Field(None, max_length=255, description="未知字段(qhot_icon)")
|
||
qhot_rule: Optional[str] = Field(None, max_length=255, description="未知字段(qhot_rule)")
|
||
qdiff: Optional[str] = Field(None, max_length=255, description="未知字段(qdiff)")
|
||
qdiff_icon: Optional[str] = Field(None, max_length=255, description="未知字段(qdiff_icon)")
|
||
qdiff_rule: Optional[str] = Field(None, max_length=255, description="未知字段(qdiff_rule)")
|
||
countdown: Optional[str] = Field(None, max_length=255, description="事件名称")
|
||
countdowntime: Optional[datetime] = Field(None, description="时间点")
|
||
time_display: Optional[int] = Field(1, ge=1, le=2, description="倒计时显示,默认为1")
|
||
student_open: Optional[int] = Field(1, ge=1, le=2, description="学生开启 1开启,默认为1")
|
||
freepoolnum: Optional[int] = Field(0, ge=0, description="题库体验题数,默认为0")
|
||
freeknowledgenum: Optional[int] = Field(0, ge=0, description="知识点体验章数,默认为0")
|
||
info_status: int = Field(1, ge=1, le=2, description="是否必须完善信息1是")
|
||
app_id: str = Field(..., max_length=50, description="微信公众公众号Appid")
|
||
app_secret: str = Field(..., max_length=50, description="微信公众SERECT")
|
||
IOS: int = Field(2, ge=1, le=2, description="1开启 2关闭,默认为2")
|
||
customer_service: str = Field(..., max_length=255, description="客服二维码")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class SettingCreate(SettingBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class SettingUpdate(SettingBase):
|
||
weid: Optional[int] = None
|
||
mchid: Optional[str] = None
|
||
pay_secret: Optional[str] = None
|
||
pay_open: Optional[int] = None
|
||
signcertpath: Optional[str] = None
|
||
signkeypath: Optional[str] = None
|
||
AccessKeyId: Optional[str] = None
|
||
AccessKeySecret: Optional[str] = None
|
||
SignName: Optional[str] = None
|
||
TemplateCode: Optional[str] = None
|
||
RegionId: Optional[str] = None
|
||
banner_height: Optional[int] = None
|
||
shareupper: Optional[int] = None
|
||
share_title: Optional[str] = None
|
||
istatus: Optional[int] = None
|
||
is_display: Optional[int] = None
|
||
display_num: Optional[int] = None
|
||
use_integral_num: Optional[int] = None
|
||
franction: Optional[str] = None
|
||
paper_time: Optional[int] = None
|
||
reward_integral: Optional[int] = None
|
||
medal: Optional[str] = None
|
||
share_integral: Optional[int] = None
|
||
sms_accessKeyId: Optional[str] = None
|
||
sms_accessKeySecret: Optional[str] = None
|
||
about: Optional[str] = None
|
||
wechat_number: Optional[str] = None
|
||
standard: Optional[int] = None
|
||
pass_: Optional[str] = None
|
||
good: Optional[str] = None
|
||
excellent: Optional[str] = None
|
||
randoms: Optional[str] = None
|
||
randoms_icon: Optional[str] = None
|
||
randoms_rule: Optional[str] = None
|
||
notdone: Optional[str] = None
|
||
notdone_icon: Optional[str] = None
|
||
notdone_rule: Optional[str] = None
|
||
qhig: Optional[str] = None
|
||
qhig_icon: Optional[str] = None
|
||
qhig_rule: Optional[str] = None
|
||
qint: Optional[str] = None
|
||
qint_icon: Optional[str] = None
|
||
qint_rule: Optional[str] = None
|
||
qhot: Optional[str] = None
|
||
qhot_icon: Optional[str] = None
|
||
qhot_rule: Optional[str] = None
|
||
qdiff: Optional[str] = None
|
||
qdiff_icon: Optional[str] = None
|
||
qdiff_rule: Optional[str] = None
|
||
countdown: Optional[str] = None
|
||
countdowntime: Optional[datetime] = None
|
||
time_display: Optional[int] = None
|
||
student_open: Optional[int] = None
|
||
freepoolnum: Optional[int] = None
|
||
freeknowledgenum: Optional[int] = None
|
||
info_status: Optional[int] = None
|
||
app_id: Optional[str] = None
|
||
app_secret: Optional[str] = None
|
||
IOS: Optional[int] = None
|
||
customer_service: Optional[str] = None
|
||
|
||
|
||
class SettingInDB(SettingBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class SettingResponse(SettingInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class SettingListResponse(BaseModel):
|
||
data: List[SettingResponse]
|
||
|
||
|
||
class ShareRecordBase(BaseModel):
|
||
weid: Optional[int] = Field(0, ge=0, description="站点 ID")
|
||
uid: int = Field(..., ge=0, description="用户 ID")
|
||
num: Optional[int] = Field(None, ge=0, description="分享次数")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="是否删除的标识,默认为1")
|
||
day: Optional[date] = Field(None, description="记录哪一天")
|
||
createtime: Optional[int] = Field(None, description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class ShareRecordCreate(ShareRecordBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class ShareRecordUpdate(ShareRecordBase):
|
||
weid: Optional[int] = None
|
||
uid: Optional[int] = None
|
||
num: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
day: Optional[date] = None
|
||
createtime: Optional[int] = None
|
||
|
||
|
||
class ShareRecordInDB(ShareRecordBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class ShareRecordResponse(ShareRecordInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class ShareRecordListResponse(BaseModel):
|
||
data: List[ShareRecordResponse]
|
||
|
||
|
||
class SonSimpleBase(BaseModel):
|
||
weid: str = Field(..., max_length=150, description="站点 ID")
|
||
son_title: str = Field(..., max_length=255, description="子标题")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class SonSimpleCreate(SonSimpleBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class SonSimpleUpdate(SonSimpleBase):
|
||
weid: Optional[str] = None
|
||
son_title: Optional[str] = None
|
||
|
||
|
||
class SonSimpleInDB(SonSimpleBase):
|
||
id: int
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class SonSimpleResponse(SonSimpleInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class SonSimpleListResponse(BaseModel):
|
||
data: List[SonSimpleResponse]
|
||
|
||
|
||
class TestBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
type: int = Field(..., ge=0, le=255, description="试题类型")
|
||
title: str = Field(..., max_length=255, description="试题题目 仅在列表显示 试卷内不显示")
|
||
libraryid: Optional[int] = Field(0, ge=0, description="题库id")
|
||
question: str = Field(..., description="题目")
|
||
qimage: Optional[str] = Field(None, description="试题图片")
|
||
qaudio: Optional[str] = Field(None, description="问题音频")
|
||
a_type: Optional[int] = Field(0, ge=0, le=255, description="选项类型")
|
||
option: Optional[str] = Field(None, description="选项")
|
||
rightkey: str = Field(..., description="正确答案")
|
||
analysis: str = Field(..., description="答案解析")
|
||
aimage: Optional[str] = Field(None, description="解析图片")
|
||
istatus: Optional[int] = Field(1, ge=1, le=2, description="是否删除的标识,默认为1")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
anum: Optional[int] = Field(0, ge=0, description="本题答题次数 仅考试")
|
||
rnum: Optional[int] = Field(0, ge=0, description="正确回答次数 仅考试")
|
||
level: Optional[int] = Field(1, ge=1, le=5, description="难度等级,默认为1")
|
||
qvideo: Optional[str] = Field(None, description="问题视频")
|
||
analysis_audio: Optional[str] = Field(None, description="音频解析")
|
||
knowledge: Optional[str] = Field(None, description="所属知识点类别")
|
||
type_classification: Optional[str] = Field(None, description="类型分类")
|
||
q_year: Optional[str] = Field(None, description="年份")
|
||
pid: Optional[int] = Field(0, ge=0, description="问题父id")
|
||
son_status: Optional[int] = Field(None, description="语音题是否加了小题")
|
||
display: Optional[int] = Field(1, ge=1, le=2, description="1-显示2-不显示,默认为1")
|
||
son_simple: int = Field(0, ge=0, description="子题简化")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class TestCreate(TestBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class TestUpdate(TestBase):
|
||
weid: Optional[int] = None
|
||
type: Optional[int] = None
|
||
title: Optional[str] = None
|
||
libraryid: Optional[int] = None
|
||
question: Optional[str] = None
|
||
qimage: Optional[str] = None
|
||
qaudio: Optional[str] = None
|
||
a_type: Optional[int] = None
|
||
option: Optional[str] = None
|
||
rightkey: Optional[str] = None
|
||
analysis: Optional[str] = None
|
||
aimage: Optional[str] = None
|
||
istatus: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
anum: Optional[int] = None
|
||
rnum: Optional[int] = None
|
||
level: Optional[int] = None
|
||
qvideo: Optional[str] = None
|
||
analysis_audio: Optional[str] = None
|
||
knowledge: Optional[str] = None
|
||
type_classification: Optional[str] = None
|
||
q_year: Optional[str] = None
|
||
pid: Optional[int] = None
|
||
son_status: Optional[int] = None
|
||
display: Optional[int] = None
|
||
son_simple: Optional[int] = None
|
||
|
||
|
||
class TestInDB(TestBase):
|
||
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:
|
||
orm_mode = True
|
||
|
||
|
||
class TestResponse(TestInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class TestListResponse(BaseModel):
|
||
data: List[TestResponse]
|
||
|
||
|
||
class TestTypeBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
name: str = Field(..., max_length=255, description="试题库名称")
|
||
pid: Optional[int] = Field(0, ge=0, description="默认0为顶级分类")
|
||
gpid: Optional[int] = Field(0, ge=0, description="默认0")
|
||
price: Optional[Decimal] = Field(Decimal('0.00'), ge=0, description="价格")
|
||
status: Optional[int] = Field(1, ge=0, le=1, description="题库状态,默认为1")
|
||
is_student: Optional[int] = Field(0, ge=0, le=1, description="学员专享 1是,默认为0")
|
||
istatus: Optional[int] = Field(1, ge=0, le=1, description="是否删除的标识,默认为1")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
display_order: int = Field(0, description="显示顺序,默认为0")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class TestTypeCreate(TestTypeBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class TestTypeUpdate(TestTypeBase):
|
||
weid: Optional[int] = None
|
||
name: Optional[str] = None
|
||
pid: Optional[int] = None
|
||
gpid: Optional[int] = None
|
||
price: Optional[Decimal] = None
|
||
status: Optional[int] = None
|
||
is_student: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
display_order: Optional[int] = None
|
||
|
||
|
||
class TestTypeInDB(TestTypeBase):
|
||
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:
|
||
orm_mode = True
|
||
|
||
|
||
class TestTypeResponse(TestTypeInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class TestTypeListResponse(BaseModel):
|
||
data: List[TestTypeResponse]
|
||
|
||
|
||
class TypeCateBase(BaseModel):
|
||
weid: int = Field(..., ge=0, description="站点 ID")
|
||
name: str = Field(..., max_length=255, description="分类名称")
|
||
status: Optional[int] = Field(1, ge=1, le=2, description="状态 1 显示 2不显示,默认为1")
|
||
istatus: Optional[int] = Field(1, ge=0, le=1, description="是否删除的标识,默认为1")
|
||
createtime: int = Field(..., description="创建时间,Unix 时间戳")
|
||
|
||
class Config:
|
||
orm_mode = True
|
||
|
||
|
||
class TypeCateCreate(TypeCateBase):
|
||
pass # 如果创建时需要额外字段或默认值不同,可以在这里添加
|
||
|
||
|
||
class TypeCateUpdate(TypeCateBase):
|
||
weid: Optional[int] = None
|
||
name: Optional[str] = None
|
||
status: Optional[int] = None
|
||
istatus: Optional[int] = None
|
||
createtime: Optional[int] = None
|
||
|
||
|
||
class TypeCateInDB(TypeCateBase):
|
||
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:
|
||
orm_mode = True
|
||
|
||
|
||
class TypeCateResponse(TypeCateInDB):
|
||
pass # 可以根据需要添加额外的字段或调整现有字段
|
||
|
||
|
||
# 用于批量操作的模型
|
||
class TypeCateListResponse(BaseModel):
|
||
data: List[TypeCateResponse]
|