"""MySQL: bg_recruit_announcement 招聘公告主表模型""" from datetime import datetime from typing import Optional from sqlalchemy import BigInteger, DateTime, Integer, String, Text from sqlalchemy.orm import Mapped, mapped_column from app.core.database import MysqlBase class RecruitAnnouncement(MysqlBase): """招聘公告主表""" __tablename__ = "bg_recruit_announcement" id: Mapped[int] = mapped_column(BigInteger, primary_key=True, comment="主键ID(雪花)") company_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="关联企业主表id") company_name: Mapped[str] = mapped_column(String(128), nullable=False, default="", comment="公司名称") title: Mapped[str] = mapped_column(String(255), nullable=False, default="", comment="公告标题") company_intro: Mapped[Optional[str]] = mapped_column(Text, comment="公司简介") target_audience: Mapped[Optional[str]] = mapped_column(String(500), comment="面向对象,如2027届本硕博") major_require: Mapped[Optional[str]] = mapped_column(String(500), comment="专业要求") recruit_position: Mapped[Optional[str]] = mapped_column(String(1000), comment="招聘岗位") remark: Mapped[Optional[str]] = mapped_column(String(1000), comment="备注") written_exam: Mapped[Optional[str]] = mapped_column(String(16), comment="是否笔试:有 / 无 / 未明确") apply_start_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="投递开始时间") apply_end_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="投递结束时间") apply_end_desc: Mapped[Optional[str]] = mapped_column(String(64), comment='投递截止描述,如"尽快投递"') invite_code: Mapped[Optional[str]] = mapped_column(String(64), comment="专属内推码") announcement_url: Mapped[Optional[str]] = mapped_column(String(512), comment="公告地址") apply_url: Mapped[Optional[str]] = mapped_column(String(512), comment="投递地址") apply_email: Mapped[Optional[str]] = mapped_column(String(128), comment="投递邮箱") source: Mapped[Optional[str]] = mapped_column(String(255), comment="信息来源说明") publish_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="公告发布/更新时间") clean_status: Mapped[int] = mapped_column(Integer, nullable=False, default=0, comment="清洗状态:0-清洗中 1-清洗完成") status: Mapped[int] = mapped_column(Integer, nullable=False, default=1, comment="状态:0-失效 1-有效") create_time: Mapped[datetime] = mapped_column(DateTime, nullable=False, comment="创建时间") update_time: Mapped[datetime] = mapped_column(DateTime, nullable=False, comment="更新时间")