| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- from datetime import datetime
- from decimal import Decimal
- from typing import Optional
- from sqlalchemy import BigInteger, String, DateTime, Integer, Text, Numeric, SMALLINT
- from sqlalchemy.orm import Mapped, mapped_column
- from app.database import Base
- class CrmProduct(Base):
- __tablename__ = "crm_product"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- product_no: Mapped[Optional[str]] = mapped_column(String(50), default="", comment="产品编号")
- product_name: Mapped[Optional[str]] = mapped_column(String(200), default="", comment="产品名称")
- category_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="分类ID")
- category_name: Mapped[Optional[str]] = mapped_column(String(100), default="", comment="分类名称")
- model: Mapped[Optional[str]] = mapped_column(String(100), default="", comment="规格型号")
- unit: Mapped[Optional[str]] = mapped_column(String(20), default="", comment="单位")
- barcode: Mapped[Optional[str]] = mapped_column(String(100), default="", comment="条形码")
- price: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), default=Decimal("0"), comment="销售价格")
- cost: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), default=Decimal("0"), comment="成本价格")
- min_price: Mapped[Optional[Decimal]] = mapped_column(Numeric(15, 2), default=Decimal("0"), comment="最低价格")
- stock: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="库存数量")
- low_stock: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="最低库存")
- status: Mapped[Optional[str]] = mapped_column(String(20), default="1", comment="状态")
- tax_rate: Mapped[Optional[Decimal]] = mapped_column(Numeric(5, 2), default=Decimal("0"), comment="税率")
- description: Mapped[Optional[str]] = mapped_column(Text, comment="产品描述")
- images: Mapped[Optional[str]] = mapped_column(String(1000), default="", comment="产品图片")
- sale_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(SMALLINT, default=0, comment="删除标志(0存在 1删除)")
- version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="备注")
- class CrmProductCategory(Base):
- __tablename__ = "crm_product_category"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- category_name: Mapped[Optional[str]] = mapped_column(String(100), default="", comment="分类名称")
- parent_id: Mapped[Optional[int]] = mapped_column(BigInteger, default=0, comment="父分类ID")
- ancestors: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="祖级列表")
- sort: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="排序号")
- status: Mapped[Optional[str]] = mapped_column(String(10), default="1", 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(SMALLINT, default=0, comment="删除标志(0存在 1删除)")
- version: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="版本号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="备注")
- class CrmProductTag(Base):
- __tablename__ = "crm_product_tag"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- tag_name: Mapped[Optional[str]] = mapped_column(String(50), default="", comment="标签名称")
- tag_color: Mapped[Optional[str]] = mapped_column(String(20), default="", comment="标签颜色")
- sort: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="排序号")
- status: Mapped[Optional[str]] = mapped_column(String(1), default="1", comment="状态")
- remark: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="备注")
- del_flag: Mapped[Optional[int]] = mapped_column(Integer, default=0, 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="更新时间")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
- class CrmProductTagRelation(Base):
- __tablename__ = "crm_product_tag_relation"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- product_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="产品ID")
- tag_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="标签ID")
- create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
- class CrmProductAttachment(Base):
- __tablename__ = "crm_product_attachment"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- product_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="产品ID")
- file_name: Mapped[Optional[str]] = mapped_column(String(200), default="", comment="文件名称")
- file_path: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="文件路径")
- file_type: Mapped[Optional[str]] = mapped_column(String(50), default="", comment="文件类型")
- file_size: Mapped[Optional[int]] = mapped_column(BigInteger, default=0, comment="文件大小")
- attachment_type: Mapped[Optional[str]] = mapped_column(String(50), default="", comment="附件类型")
- download_count: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="下载次数")
- sort: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="排序号")
- remark: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="备注")
- del_flag: Mapped[Optional[int]] = mapped_column(Integer, default=0, 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="更新时间")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
- class CrmProductPrice(Base):
- __tablename__ = "crm_product_price"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- product_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="产品ID")
- price_type: Mapped[Optional[str]] = mapped_column(String(20), default="", comment="价格类型")
- price: Mapped[Optional[Decimal]] = mapped_column(Numeric(12, 2), default=Decimal("0"), comment="价格")
- start_date: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="开始日期")
- end_date: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="结束日期")
- status: Mapped[Optional[str]] = mapped_column(String(10), default="1", comment="状态")
- remark: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="备注")
- del_flag: Mapped[Optional[int]] = mapped_column(Integer, default=0, 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="更新时间")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
- class CrmProductPriceHistory(Base):
- __tablename__ = "crm_product_price_history"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- product_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="产品ID")
- price_type: Mapped[Optional[str]] = mapped_column(String(20), default="", comment="价格类型")
- old_price: Mapped[Optional[Decimal]] = mapped_column(Numeric(12, 2), default=Decimal("0"), comment="原价格")
- new_price: Mapped[Optional[Decimal]] = mapped_column(Numeric(12, 2), default=Decimal("0"), comment="新价格")
- price_change: Mapped[Optional[Decimal]] = mapped_column(Numeric(12, 2), default=Decimal("0"), comment="价格变动")
- change_percent: Mapped[Optional[Decimal]] = mapped_column(Numeric(5, 2), default=Decimal("0"), comment="变动百分比")
- adjust_reason: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="调整原因")
- effective_date: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="生效日期")
- create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
- create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
- class CrmProductStockLog(Base):
- __tablename__ = "crm_product_stock_log"
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
- product_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="产品ID")
- operation_type: Mapped[Optional[str]] = mapped_column(String(20), default="", comment="操作类型")
- quantity: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="数量")
- before_stock: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="操作前库存")
- after_stock: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="操作后库存")
- unit_price: Mapped[Optional[Decimal]] = mapped_column(Numeric(12, 2), default=Decimal("0"), comment="单价")
- total_amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(12, 2), default=Decimal("0"), comment="总金额")
- related_no: Mapped[Optional[str]] = mapped_column(String(100), default="", comment="关联单号")
- related_type: Mapped[Optional[str]] = mapped_column(String(50), default="", comment="关联类型")
- supplier: Mapped[Optional[str]] = mapped_column(String(200), default="", comment="供应商")
- operator: Mapped[Optional[str]] = mapped_column(String(100), default="", comment="操作人")
- operation_date: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="操作日期")
- remark: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="备注")
- create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
- create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
- tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
|