| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- from datetime import datetime
- from decimal import Decimal
- from typing import Optional
- from sqlalchemy import BigInteger, String, DateTime, Integer, Text, Numeric, SmallInteger
- from sqlalchemy.orm import Mapped, mapped_column
- from app.database import Base
- class CrmCustomer(Base):
- __tablename__ = "crm_customer"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- customer_no: Mapped[Optional[str]] = mapped_column(String(50), comment="客户编号")
- customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
- short_name: Mapped[Optional[str]] = mapped_column(String(100), comment="客户简称")
- customer_type: Mapped[Optional[str]] = mapped_column(String(20), comment="客户类型")
- mobile: 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="邮箱")
- website: Mapped[Optional[str]] = mapped_column(String(500), comment="客户网站")
- level: Mapped[Optional[str]] = mapped_column(String(20), comment="客户级别")
- source: 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="所在园区")
- payment_terms: Mapped[Optional[str]] = mapped_column(String(500), comment="付款条件")
- scale: Mapped[Optional[str]] = mapped_column(String(20), 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="详细地址")
- status: Mapped[Optional[str]] = mapped_column(String(20), default="1", comment="客户状态(1正常 2公海 3无效)")
- deal_status: Mapped[Optional[str]] = mapped_column(String(20), default="0", comment="成交状态(0未成交 1已成交)")
- 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="跟进次数")
- deal_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="成交时间")
- deal_amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), default=Decimal("0"), comment="成交金额")
- contact_count: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="联系人数量")
- opportunity_count: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="商机数量")
- contract_count: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="合同数量")
- into_pool_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="进入公海时间")
- into_pool_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="放入公海操作人")
- into_pool_reason: Mapped[Optional[str]] = mapped_column(String(500), comment="放入公海原因")
- claim_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="领取时间")
- assign_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="分配时间")
- assign_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="分配人")
- protect_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="保护到期时间")
- clue_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="关联线索ID")
- 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(Integer, default=0, comment="删除标志(0存在 1删除)")
- version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
- business_license_images: Mapped[Optional[str]] = mapped_column(String(1000), comment="营业执照图片")
- business_permit_images: Mapped[Optional[str]] = mapped_column(String(1000), comment="经营许可证图片")
- other_cert_images: Mapped[Optional[str]] = mapped_column(String(1000), comment="其他证件图片")
- class CrmCustomerFollow(Base):
- __tablename__ = "crm_customer_follow"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="客户ID")
- customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
- contact_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="联系人ID")
- contact_name: Mapped[Optional[str]] = mapped_column(String(50), 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(Integer, default=0, comment="删除标志")
- version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
- class CrmCustomerTag(Base):
- __tablename__ = "crm_customer_tag"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- tag_name: Mapped[Optional[str]] = mapped_column(String(50), comment="标签名称")
- tag_color: Mapped[Optional[str]] = mapped_column(String(20), comment="标签颜色")
- tag_type: Mapped[Optional[str]] = mapped_column(String(20), comment="标签类型")
- sort_order: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="排序号")
- share_scope: Mapped[Optional[str]] = mapped_column(String(200), comment="共享范围")
- create_user_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建用户ID")
- create_user_name: Mapped[Optional[str]] = mapped_column(String(50), comment="创建用户姓名")
- use_count: Mapped[Optional[int]] = mapped_column(Integer, default=0, 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(Integer, default=0, comment="删除标志")
- remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
- class CrmCustomerTagRelation(Base):
- __tablename__ = "crm_customer_tag_relation"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="客户ID")
- customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
- tag_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="标签ID")
- tag_name: Mapped[Optional[str]] = mapped_column(String(50), comment="标签名称")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
- create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
- create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
- del_flag: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="删除标志")
- class CrmCustomerPool(Base):
- __tablename__ = "crm_customer_pool"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="客户ID")
- customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
- operation_type: Mapped[Optional[str]] = mapped_column(String(20), comment="操作类型")
- from_user_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="原负责人ID")
- from_user_name: Mapped[Optional[str]] = mapped_column(String(50), comment="原负责人姓名")
- to_user_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="新负责人ID")
- to_user_name: Mapped[Optional[str]] = mapped_column(String(50), comment="新负责人姓名")
- reason: Mapped[Optional[str]] = mapped_column(String(500), 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(Integer, default=0, comment="删除标志")
- version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
- class CrmCustomerPoolRule(Base):
- __tablename__ = "crm_customer_pool_rule"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- pool_name: Mapped[Optional[str]] = mapped_column(String(100), comment="规则名称")
- rule_type: Mapped[Optional[str]] = mapped_column(String(20), comment="规则类型")
- timeout_days: Mapped[Optional[int]] = mapped_column(Integer, comment="超时天数")
- protect_days: Mapped[Optional[int]] = mapped_column(Integer, comment="保护期天数")
- status: Mapped[Optional[str]] = mapped_column(String(20), default="1", comment="状态(1启用 0禁用)")
- sort: Mapped[Optional[int]] = mapped_column(Integer, default=0, 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(Integer, default=0, comment="删除标志")
- version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
|