| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- from datetime import datetime, date
- from decimal import Decimal
- from typing import Optional
- from sqlalchemy import BigInteger, String, DateTime, Integer, Text, Date, SmallInteger
- from sqlalchemy.orm import Mapped, mapped_column
- from app.database import Base
- class CrmClue(Base):
- __tablename__ = "crm_clue"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- clue_name: Mapped[Optional[str]] = mapped_column(String(200), comment="线索名称")
- mobile: Mapped[Optional[str]] = mapped_column(String(20), comment="手机号")
- company: Mapped[Optional[str]] = mapped_column(String(200), comment="公司名称")
- customer_type: Mapped[Optional[str]] = mapped_column(String(20), comment="客户类型")
- telephone: Mapped[Optional[str]] = mapped_column(String(30), comment="固定电话")
- email: Mapped[Optional[str]] = mapped_column(String(100), comment="邮箱")
- title: Mapped[Optional[str]] = mapped_column(String(50), comment="称谓")
- position: Mapped[Optional[str]] = mapped_column(String(50), comment="职位")
- source: Mapped[Optional[str]] = mapped_column(String(20), comment="线索来源")
- level: Mapped[Optional[str]] = mapped_column(String(20), comment="线索等级")
- industry: Mapped[Optional[str]] = mapped_column(String(50), comment="所属行业")
- park_area: Mapped[Optional[str]] = mapped_column(String(100), comment="所在园区")
- province: Mapped[Optional[str]] = mapped_column(String(50), comment="省")
- city: Mapped[Optional[str]] = mapped_column(String(50), comment="市")
- district: Mapped[Optional[str]] = mapped_column(String(50), comment="区")
- address: Mapped[Optional[str]] = mapped_column(String(255), comment="详细地址")
- website: Mapped[Optional[str]] = mapped_column(String(500), comment="网站")
- intent_products: Mapped[Optional[str]] = mapped_column(String(500), comment="意向产品")
- expect_time: Mapped[Optional[date]] = mapped_column(Date, comment="预计成交时间")
- budget: Mapped[Optional[Decimal]] = mapped_column(String(50), comment="预算")
- requirement: Mapped[Optional[str]] = mapped_column(Text, comment="需求描述")
- status: Mapped[Optional[str]] = mapped_column(String(20), default="1", comment="状态(1待跟进 2跟进中 3已转换 4无效)")
- owner_user_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="负责人ID")
- owner_user_name: Mapped[Optional[str]] = mapped_column(String(50), comment="负责人姓名")
- last_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="最后跟进时间")
- next_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="下次联系时间")
- follow_count: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="跟进次数")
- is_converted: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="是否已转换(0否 1是)")
- converted_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="转换时间")
- customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="转换后客户ID")
- converted_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="转换操作人")
- assign_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="分配时间")
- assign_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="分配人")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
- create_dept: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建部门")
- create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
- create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
- update_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="更新者")
- update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="更新时间")
- del_flag: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="删除标志(0存在 1删除)")
- version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
- class CrmClueFollow(Base):
- __tablename__ = "crm_clue_follow"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- clue_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="线索ID")
- clue_name: Mapped[Optional[str]] = mapped_column(String(200), comment="线索名称")
- follow_type: Mapped[Optional[str]] = mapped_column(String(20), comment="跟进方式")
- follow_content: Mapped[Optional[str]] = mapped_column(Text, comment="跟进内容")
- next_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="下次联系时间")
- attachments: Mapped[Optional[str]] = mapped_column(String(1000), comment="附件")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
- create_dept: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建部门")
- create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
- create_by_name: Mapped[Optional[str]] = mapped_column(String(50), comment="创建者姓名")
- create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
- update_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="更新者")
- update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="更新时间")
- del_flag: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="删除标志")
- version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
|