"""MySQL: bg_company 表模型""" from datetime import datetime from typing import Optional from sqlalchemy import BigInteger, DateTime, Integer, JSON, String, Text from sqlalchemy.orm import Mapped, mapped_column from app.core.database import MysqlBase class Company(MysqlBase): """公司表""" __tablename__ = "bg_company" id: Mapped[int] = mapped_column(BigInteger, primary_key=True, comment="主键ID(雪花)") name: Mapped[Optional[str]] = mapped_column(String(255), comment="公司全称") short_name: Mapped[str] = mapped_column(String(128), nullable=False, comment="公司简称") logo_url: Mapped[Optional[str]] = mapped_column(String(512), comment="Logo地址") region_code: Mapped[Optional[str]] = mapped_column(String(20), comment="地区编码") company_type: Mapped[Optional[str]] = mapped_column(String(32), comment="企业类型:上市企业/独角兽/国企等") industry_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="行业ID") tags: Mapped[Optional[list]] = mapped_column(JSON, comment="公司标签JSON数组") summary: Mapped[Optional[str]] = mapped_column(String(512), comment="一句话简介") description: Mapped[Optional[str]] = mapped_column(Text, comment="公司详细描述") founded_year: Mapped[Optional[str]] = mapped_column(String(10), comment="成立年份") address: Mapped[Optional[str]] = mapped_column(String(255), comment="总部地址") scale: Mapped[Optional[str]] = mapped_column(String(32), comment="企业规模") website: Mapped[Optional[str]] = mapped_column(String(255), comment="官网地址") financing_stage: Mapped[Optional[str]] = mapped_column(String(32), comment="融资状态") latest_valuation: Mapped[Optional[str]] = mapped_column(String(64), comment="最新估值") news: Mapped[Optional[list]] = mapped_column(JSON, comment="相关新闻JSON数组") status: Mapped[int] = mapped_column(Integer, default=0, comment="0=待完善 1=已完善 2=禁用 3=补充中 4=补充失败") create_time: Mapped[datetime] = mapped_column(DateTime, nullable=False, comment="创建时间") update_time: Mapped[datetime] = mapped_column(DateTime, nullable=False, comment="更新时间")