| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- from datetime import datetime, date
- from decimal import Decimal
- from typing import Optional
- from sqlalchemy import BigInteger, String, DateTime, Integer, Text, Numeric, SmallInteger, Date
- from sqlalchemy.orm import Mapped, mapped_column
- from app.database import Base
- class CrmVisit(Base):
- __tablename__ = "crm_visit"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- visit_no: Mapped[Optional[str]] = mapped_column(String(50), comment="回访编号")
- customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="客户ID")
- customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
- contract_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="合同ID")
- contract_no: Mapped[Optional[str]] = mapped_column(String(50), comment="合同编号")
- contact_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="联系人ID")
- contact_name: Mapped[Optional[str]] = mapped_column(String(50), comment="联系人姓名")
- contact_mobile: Mapped[Optional[str]] = mapped_column(String(20), comment="联系人电话")
- visit_type: Mapped[Optional[str]] = mapped_column(String(20), comment="回访类型")
- plan_visit_date: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="计划回访时间")
- visit_date: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="实际回访时间")
- visit_method: Mapped[Optional[str]] = mapped_column(String(20), comment="回访方式")
- visit_purpose: Mapped[Optional[str]] = mapped_column(Text, comment="回访目的")
- visit_script: Mapped[Optional[str]] = mapped_column(Text, comment="回访话术")
- visit_content: Mapped[Optional[str]] = mapped_column(Text, comment="回访内容")
- visit_summary: Mapped[Optional[str]] = mapped_column(String(1000), comment="回访总结")
- satisfaction: Mapped[Optional[str]] = mapped_column(String(20), comment="满意度")
- satisfaction_score: Mapped[Optional[int]] = mapped_column(Integer, comment="满意度评分")
- usage_status: Mapped[Optional[str]] = mapped_column(String(20), comment="使用状态")
- dissatisfaction_reason: Mapped[Optional[str]] = mapped_column(String(500), comment="不满意原因")
- has_problem: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="是否有问题")
- problem_count: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="问题数量")
- problem_summary: Mapped[Optional[str]] = mapped_column(String(500), comment="问题摘要")
- has_opportunity: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="是否有商机")
- opportunity_desc: Mapped[Optional[str]] = mapped_column(Text, comment="商机描述")
- opportunity_amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), comment="商机金额")
- next_visit_date: Mapped[Optional[date]] = mapped_column(Date, comment="下次回访日期")
- next_visit_content: Mapped[Optional[str]] = mapped_column(String(500), comment="下次回访内容")
- status: Mapped[Optional[str]] = mapped_column(String(20), default="0", comment="状态")
- cancel_reason: Mapped[Optional[str]] = mapped_column(String(500), comment="取消原因")
- cancel_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="取消时间")
- owner_user_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="负责人ID")
- owner_user_name: Mapped[Optional[str]] = mapped_column(String(50), comment="负责人姓名")
- duration: Mapped[Optional[int]] = mapped_column(Integer, 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_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 CrmVisitPlan(Base):
- __tablename__ = "crm_visit_plan"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- rule_name: Mapped[Optional[str]] = mapped_column(String(200), comment="规则名称")
- trigger_type: Mapped[Optional[str]] = mapped_column(String(20), comment="触发类型")
- delay_days: Mapped[Optional[int]] = mapped_column(Integer, comment="延迟天数")
- visit_type: Mapped[Optional[str]] = mapped_column(String(20), comment="回访类型")
- visit_method: Mapped[Optional[str]] = mapped_column(String(20), comment="回访方式")
- visit_content_template: Mapped[Optional[str]] = mapped_column(Text, comment="回访内容模板")
- status: Mapped[Optional[str]] = mapped_column(String(20), default="0", comment="状态")
- execute_count: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="执行次数")
- last_execute_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="最后执行时间")
- 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(SmallInteger, default=0, comment="删除标志(0存在 1删除)")
- remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
- class CrmVisitProblem(Base):
- __tablename__ = "crm_visit_problem"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- visit_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="回访ID")
- visit_no: Mapped[Optional[str]] = mapped_column(String(50), comment="回访编号")
- customer_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="客户ID")
- customer_name: Mapped[Optional[str]] = mapped_column(String(200), comment="客户名称")
- problem_type: Mapped[Optional[str]] = mapped_column(String(20), comment="问题类型")
- problem_desc: Mapped[Optional[str]] = mapped_column(Text, comment="问题描述")
- problem_images: Mapped[Optional[str]] = mapped_column(String(1000), comment="问题图片")
- severity: Mapped[Optional[str]] = mapped_column(String(20), comment="严重程度")
- solution: Mapped[Optional[str]] = mapped_column(Text, comment="解决方案")
- status: Mapped[Optional[str]] = mapped_column(String(20), default="0", comment="状态")
- solve_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="解决人ID")
- solve_by_name: Mapped[Optional[str]] = mapped_column(String(50), comment="解决人姓名")
- solve_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="解决时间")
- solve_duration: Mapped[Optional[int]] = mapped_column(Integer, comment="解决时长(小时)")
- close_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="关闭人ID")
- close_by_name: Mapped[Optional[str]] = mapped_column(String(50), comment="关闭人姓名")
- close_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="关闭时间")
- close_reason: Mapped[Optional[str]] = mapped_column(String(500), comment="关闭原因")
- customer_feedback: Mapped[Optional[str]] = mapped_column(Text, comment="客户反馈")
- is_satisfied: Mapped[Optional[int]] = mapped_column(SmallInteger, default=0, comment="客户是否满意")
- 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(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="备注")
|