diff --git a/mooc/schemas/core.py b/mooc/schemas/core.py index 2b13d42..96f0160 100644 --- a/mooc/schemas/core.py +++ b/mooc/schemas/core.py @@ -1,365 +1,320 @@ -from pydantic import BaseModel -from typing import Optional - - -# 数据模型基类: ImsCoreCacheBase,用于描述基础字段的类型、用途和注意点 -class ImsCoreCacheBase(BaseModel): - acid: str # 对应数据库表中主键acid - - -class ImsCoreCacheCreate(ImsCoreCacheBase): - """ - 用于创建新的ims_core_cache记录: - - 继承自ImsCoreCacheBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCoreCacheUpdate(BaseModel): - """ - 用于更新已有ims_core_cache记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[str] - - -class ImsCoreCache(ImsCoreCacheBase): - """ - 表示完整的ims_core_cache记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCoreCronBase,用于描述基础字段的类型、用途和注意点 -class ImsCoreCronBase(BaseModel): - acid: int - createtime: Optional[int] - nextruntime: Optional[int] - uniacid: Optional[int] - cloudid: Optional[int] - - -class ImsCoreCronCreate(ImsCoreCronBase): - """ - 用于创建新的ims_core_cron记录: - - 继承自ImsCoreCronBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCoreCronUpdate(BaseModel): - """ - 用于更新已有ims_core_cron记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - createtime: Optional[int] - nextruntime: Optional[int] - uniacid: Optional[int] - cloudid: Optional[int] - - -class ImsCoreCron(ImsCoreCronBase): - """ - 表示完整的ims_core_cron记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCoreCronRecordBase,用于描述基础字段的类型、用途和注意点 -class ImsCoreCronRecordBase(BaseModel): - acid: int - uniacid: Optional[int] - tid: Optional[int] - module: Optional[str] - - -class ImsCoreCronRecordCreate(ImsCoreCronRecordBase): - """ - 用于创建新的ims_core_cron_record记录: - - 继承自ImsCoreCronRecordBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCoreCronRecordUpdate(BaseModel): - """ - 用于更新已有ims_core_cron_record记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - uniacid: Optional[int] - tid: Optional[int] - module: Optional[str] - - -class ImsCoreCronRecord(ImsCoreCronRecordBase): - """ - 表示完整的ims_core_cron_record记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCoreJobBase,用于描述基础字段的类型、用途和注意点 -class ImsCoreJobBase(BaseModel): - acid: int - - -class ImsCoreJobCreate(ImsCoreJobBase): - """ - 用于创建新的ims_core_job记录: - - 继承自ImsCoreJobBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCoreJobUpdate(BaseModel): - """ - 用于更新已有ims_core_job记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - - -class ImsCoreJob(ImsCoreJobBase): - """ - 表示完整的ims_core_job记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCoreMenuBase,用于描述基础字段的类型、用途和注意点 -class ImsCoreMenuBase(BaseModel): - acid: int - - -class ImsCoreMenuCreate(ImsCoreMenuBase): - """ - 用于创建新的ims_core_menu记录: - - 继承自ImsCoreMenuBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCoreMenuUpdate(BaseModel): - """ - 用于更新已有ims_core_menu记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - - -class ImsCoreMenu(ImsCoreMenuBase): - """ - 表示完整的ims_core_menu记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCoreMenuShortcutBase,用于描述基础字段的类型、用途和注意点 -class ImsCoreMenuShortcutBase(BaseModel): - acid: int - uid: Optional[int] - - -class ImsCoreMenuShortcutCreate(ImsCoreMenuShortcutBase): - """ - 用于创建新的ims_core_menu_shortcut记录: - - 继承自ImsCoreMenuShortcutBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCoreMenuShortcutUpdate(BaseModel): - """ - 用于更新已有ims_core_menu_shortcut记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - uid: Optional[int] - - -class ImsCoreMenuShortcut(ImsCoreMenuShortcutBase): - """ - 表示完整的ims_core_menu_shortcut记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCorePaylogBase,用于描述基础字段的类型、用途和注意点 -class ImsCorePaylogBase(BaseModel): - acid: int - openid: Optional[str] - tid: Optional[int] - uniacid: Optional[int] - uniontid: Optional[str] - - -class ImsCorePaylogCreate(ImsCorePaylogBase): - """ - 用于创建新的ims_core_paylog记录: - - 继承自ImsCorePaylogBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCorePaylogUpdate(BaseModel): - """ - 用于更新已有ims_core_paylog记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - openid: Optional[str] - tid: Optional[int] - uniacid: Optional[int] - uniontid: Optional[str] - - -class ImsCorePaylog(ImsCorePaylogBase): - """ - 表示完整的ims_core_paylog记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCorePerformanceBase,用于描述基础字段的类型、用途和注意点 -class ImsCorePerformanceBase(BaseModel): - acid: int - - -class ImsCorePerformanceCreate(ImsCorePerformanceBase): - """ - 用于创建新的ims_core_performance记录: - - 继承自ImsCorePerformanceBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCorePerformanceUpdate(BaseModel): - """ - 用于更新已有ims_core_performance记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - - -class ImsCorePerformance(ImsCorePerformanceBase): - """ - 表示完整的ims_core_performance记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCoreQueueBase,用于描述基础字段的类型、用途和注意点 -class ImsCoreQueueBase(BaseModel): - acid: int - uniacid: Optional[int] - module: Optional[str] - dateline: Optional[int] - - -class ImsCoreQueueCreate(ImsCoreQueueBase): - """ - 用于创建新的ims_core_queue记录: - - 继承自ImsCoreQueueBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCoreQueueUpdate(BaseModel): - """ - 用于更新已有ims_core_queue记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - uniacid: Optional[int] - module: Optional[str] - dateline: Optional[int] - - -class ImsCoreQueue(ImsCoreQueueBase): - """ - 表示完整的ims_core_queue记录: - - acid: 数据库主键ID - - 包含所有字段的最终模型,ORM转换时使用 - """ - - class Config: - orm_mode = True - - -# 数据模型基类: ImsCoreRefundlogBase,用于描述基础字段的类型、用途和注意点 -class ImsCoreRefundlogBase(BaseModel): - acid: int - refund_uniontid: Optional[str] - uniontid: Optional[str] - - -class ImsCoreRefundlogCreate(ImsCoreRefundlogBase): - """ - 用于创建新的ims_core_refundlog记录: - - 继承自ImsCoreRefundlogBase,不额外添加字段 - - 仅表示此Schema专用于'创建'场景 - """ - pass - - -class ImsCoreRefundlogUpdate(BaseModel): - """ - 用于更新已有ims_core_refundlog记录: - - 只包含可选字段,未在此处的内容将保持不变 - - 注意: exclude_unset=True 可以避免更新空值 - """ - acid: Optional[int] - refund_uniontid: Optional[str] - uniontid: Optional[str] \ No newline at end of file +from sqlalchemy import Column, Integer, String, Text, BigInt,CHAR,ForeignKey, UnsignedInteger, TinyInt, Decimal +from sqlalchemy.dialects.mysql import BIGINT +from mooc.db.database import Base + + + # CoreAttachment模型用于映射数据库表ims_core_attachment +class CoreAttachment(Base): + __tablename__ = "ims_core_attachment" + + acid = Column(UnsignedInteger, primary_key=True) # 将id改为acid + uniacid = Column(UnsignedInteger, nullable=False) + uid = Column(UnsignedInteger, nullable=False) + filename = Column(String(255), nullable=False) + attachment = Column(String(255), nullable=False) + type = Column(UnsignedInteger, nullable=False) + createtime = Column(UnsignedInteger, nullable=False) + module_upload_dir = Column(String(100), nullable=False) + group_id = Column(Integer, nullable=False) + displayorder = Column(Integer, nullable=False) + + class Config: + from_attributes = True + + # CoreCache模型用于映射数据库表ims_core_cache +class CoreCache(Base): + __tablename__ = "ims_core_cache" + + acid = Column(String(100), primary_key=True) # 将key视为一种特殊的主键,这里用acid替代原本的命名方式 + value = Column(Text, nullable=False) + class Config: + from_attributes = True + + + # CoreCron模型用于映射数据库表ims_core_cron +class CoreCron(Base): + __tablename__ = "ims_core_cron" + acid = Column(UnsignedInteger, primary_key=True) # 将id改为acid + cloudid = Column(UnsignedInteger, nullable=False) + module = Column(String(50), nullable=False) + uniacid = Column(UnsignedInteger, nullable=False) + type = Column(TinyInt, nullable=False) + name = Column(String(50), nullable=False) + filename = Column(String(50), nullable=False) + lastruntime = Column(UnsignedInteger, nullable=False) + nextruntime = Column(UnsignedInteger, nullable=False) + weekday = Column(TinyInt, nullable=False) + day = Column(TinyInt, nullable=False) + hour = Column(TinyInt, nullable=False) + minute = Column(String(255), nullable=False) + extra = Column(String(5000), nullable=False) + status = Column(TinyInt, nullable=False) + createtime = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + + + + + # CoreCronRecord模型用于映射数据库表ims_core_cron_record +class CoreCronRecord(Base): + __tablename__ = "ims_core_cron_record" + acid = Column(UnsignedInteger, primary_key=True) # 将id改为acid + uniacid = Column(UnsignedInteger, nullable=False) + module = Column(String(50), nullable=False) + type = Column(String(50), nullable=False) + tid = Column(UnsignedInteger, nullable=False) + note = Column(String(500), nullable=False) + tag = Column(String(5000), nullable=False) + createtime = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + + + # CoreJob模型用于映射数据库表ims_core_job +class CoreJob(Base): + __tablename__ = "ims_core_job" + acid = Column(Integer, primary_key=True) # 将id改为acid + type = Column(TinyInt, nullable=False) + uniacid = Column(Integer, nullable=False) + payload = Column(String(255), nullable=False) + status = Column(TinyInt, nullable=False) + title = Column(String(22), nullable=False) + handled = Column(Integer, nullable=False) + total = Column(Integer, nullable=False) + createtime = Column(Integer, nullable=False) + updatetime = Column(Integer, nullable=False) + endtime = Column(Integer, nullable=False) + uid = Column(Integer, nullable=False) + isdeleted = Column(TinyInt, nullable=True) + + class Config: + from_attributes = True + + + + # CoreMenu模型用于映射数据库表ims_core_menu +class CoreMenu(Base): + __tablename__ = "ims_core_menu" + acid = Column(UnsignedInteger, primary_key=True) # 将id改为acid + pid = Column(UnsignedInteger, nullable=False) + title = Column(String(20), nullable=False) + name = Column(String(20), nullable=False) + url = Column(String(255), nullable=False) + append_title = Column(String(30), nullable=False) + append_url = Column(String(255), nullable=False) + displayorder = Column(TinyInt, nullable=False) + type = Column(String(15), nullable=False) + is_display = Column(TinyInt, nullable=False) + is_system = Column(TinyInt, nullable=False) + permission_name = Column(String(50), nullable=False) + group_name = Column(String(30), nullable=False) + icon = Column(String(20), nullable=False) + + class Config: + from_attributes = True + + + # CoreMenuShortcut模型用于映射数据库表ims_core_menu_shortcut +class CoreMenuShortcut(Base): + __tablename__ = "ims_core_menu_shortcut" + acid = Column(Integer, primary_key=True) # 将id改为acid + uid = Column(Integer, nullable=False) + uniacid = Column(Integer, nullable=False) + modulename = Column(String(100), nullable=False) + displayorder = Column(Integer, nullable=False) + position = Column(String(100), nullable=False) + updatetime = Column(Integer, nullable=False) + + class Config: + from_attributes = True + + + + # CorePaylog模型用于映射数据库表ims_core_paylog +class CorePaylog(Base): + __tablename__ = "ims_core_paylog" + acid = Column(BigInt, primary_key=True, nullable=False) # 将plid改为acid,注意类型为BigInt + type = Column(String(20), nullable=False) + uniacid = Column(Integer, nullable=False) + acid_original = Column(Integer, nullable=False) # 原表中还有个acid字段,这里为避免混淆改名,可按需调整 + openid = Column(String(40), nullable=False) + uniontid = Column(String(64), nullable=False) + tid = Column(String(128), nullable=False) + fee = Column(Decimal(10, 2), nullable=False) + status = Column(TinyInt, nullable=False) + module = Column(String(50), nullable=False) + tag = Column(String(2000), nullable=False) + is_usecard = Column(TinyInt, nullable=False) + card_type = Column(TinyInt, nullable=False) + card_id = Column(String(50), nullable=False) + card_fee = Column(Decimal(10, 2), nullable=False) + encrypt_code = Column(String(100), nullable=False) + is_wish = Column(TinyInt, nullable=False) + + class Config: + from_attributes = True + + + # CorePerformance模型用于映射数据库表ims_core_performance +class CorePerformance(Base): + __tablename__ = "ims_core_performance" + acid = Column(UnsignedInteger, primary_key=True) # 将id改为acid + type = Column(TinyInt, nullable=False) + runtime = Column(String(10), nullable=False) + runurl = Column(String(512), nullable=False) + runsql = Column(String(512), nullable=False) + createtime = Column(Integer, nullable=False) + + class Config: + from_attributes = True + + + + # CoreQueue模型用于映射数据库表ims_core_queue +class CoreQueue(Base): + __tablename__ = "ims_core_queue" + acid = Column(BigInt, primary_key=True) # 将qid改为acid,类型对应BigInt + uniacid = Column(UnsignedInteger, nullable=False) + acid_original = Column(UnsignedInteger, nullable=False) # 原表中还有acid字段,这里改名避免混淆,可按需调整 + message = Column(String(2000), nullable=False) + params = Column(String(1000), nullable=False) + keyword = Column(String(1000), nullable=False) + response = Column(String(2000), nullable=False) + module = Column(String(50), nullable=False) + type = Column(TinyInt, nullable=False) + dateline = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + + + # CoreRefundlog模型用于映射数据库表ims_core_refundlog +class CoreRefundlog(Base): + __tablename__ = "ims_core_refundlog" + acid = Column(Integer, primary_key=True) # 将id改为acid + uniacid = Column(Integer, nullable=False) + refund_uniontid = Column(String(64), nullable=False) + reason = Column(String(80), nullable=False) + uniontid = Column(String(64), nullable=False) + fee = Column(Decimal(10, 2), nullable=False) + status = Column(Integer, nullable=False) + is_wish = Column(TinyInt, nullable=False) + + class Config: + from_attributes = True + + + # CoreResource模型用于映射数据库表ims_core_resource +class CoreResource(Base): + __tablename__ = "ims_core_resource" + acid = Column(Integer, primary_key=True) # 将mid改为acid + uniacid = Column(UnsignedInteger, nullable=False) + media_id = Column(String(100), nullable=False) + trunk = Column(UnsignedInteger, nullable=False) + type = Column(String(10), nullable=False) + dateline = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + + + + # CoreQueue模型用于映射数据库表ims_core_queue +class CoreQueue(Base): + __tablename__ = "ims_core_queue" + acid = Column(BigInt, primary_key=True) # 将qid改为acid,类型对应BigInt + uniacid = Column(UnsignedInteger, nullable=False) + acid_original = Column(UnsignedInteger, nullable=False) # 原表中还有acid字段,这里改名避免混淆,可按需调整 + message = Column(String(2000), nullable=False) + params = Column(String(1000), nullable=False) + keyword = Column(String(1000), nullable=False) + response = Column(String(2000), nullable=False) + module = Column(String(50), nullable=False) + type = Column(TinyInt, nullable=False) + dateline = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + + + # CoreRefundlog模型用于映射数据库表ims_core_refundlog +class CoreRefundlog(Base): + __tablename__ = "ims_core_refundlog" + acid = Column(Integer, primary_key=True) # 将id改为acid + uniacid = Column(Integer, nullable=False) + refund_uniontid = Column(String(64), nullable=False) + reason = Column(String(80), nullable=False) + uniontid = Column(String(64), nullable=False) + fee = Column(Decimal(10, 2), nullable=False) + status = Column(Integer, nullable=False) + is_wish = Column(TinyInt, nullable=False) + + class Config: + from_attributes = True + + + + # CoreResource模型用于映射数据库表ims_core_resource +class CoreResource(Base): + __tablename__ = "ims_core_resource" + acid = Column(Integer, primary_key=True) # 将mid改为acid + uniacid = Column(UnsignedInteger, nullable=False) + media_id = Column(String(100), nullable=False) + trunk = Column(UnsignedInteger, nullable=False) + type = Column(String(10), nullable=False) + dateline = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + + + + + # CoreResource模型用于映射数据库表ims_core_resource +class CoreResource(Base): + __tablename__ = "ims_core_resource" + acid = Column(Integer, primary_key=True) # 将mid改为acid + uniacid = Column(UnsignedInteger, nullable=False) + media_id = Column(String(100), nullable=False) + trunk = Column(UnsignedInteger, nullable=False) + type = Column(String(10), nullable=False) + dateline = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + + # CoreSendsmsLog模型用于映射数据库表ims_core_sendsms_log +class CoreSendsmsLog(Base): + __tablename__ = "ims_core_sendsms_log" + acid = Column(UnsignedInteger, primary_key=True) # 将id改为acid + uniacid = Column(UnsignedInteger, nullable=False) + mobile = Column(String(11), nullable=False) + content = Column(String(255), nullable=False) + result = Column(String(255), nullable=False) + createtime = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + + + # CoreSessions模型用于映射数据库表ims_core_sessions +class CoreSessions(Base): + __tablename__ = "ims_core_sessions" + acid = Column(CHAR(32), primary_key=True) # 将sid作为主键,对应类型为CHAR(32) + uniacid = Column(UnsignedInteger, nullable=False) + openid = Column(String(50), nullable=False) + data = Column(String(2000), nullable=False) + expiretime = Column(UnsignedInteger, nullable=False) + + class Config: + from_attributes = True + # CoreSettings模型用于映射数据库表ims_core_settings +class CoreSettings(Base): + __tablename__ = "ims_core_settings" + acid = Column(String(255), primary_key=True) # 将主键key改为acid + + class Config: + from_attributes = True \ No newline at end of file