41 lines
2.4 KiB
Python
41 lines
2.4 KiB
Python
"""Independent, feature-gated mobile stop snapshots; existing table SELECTs are unchanged."""
|
|
from datetime import datetime
|
|
from sqlalchemy import Column, DateTime, Index, Integer, SmallInteger, String
|
|
from app.core.database import Base
|
|
|
|
|
|
class PlPlanStopProductMeta(Base):
|
|
__tablename__ = 'pl_plan_stop_product_meta'
|
|
__table_args__ = (Index('ix_pl_stop_meta_scope', 'tenant_no', 'plan_id', 'del_flag'),
|
|
Index('ix_pl_stop_meta_row', 'tenant_no', 'stop_type', 'stop_product_id'))
|
|
id = Column(String(64), primary_key=True)
|
|
plan_id = Column(String(64), nullable=False, default='')
|
|
stop_type = Column(String(16), nullable=False, default='')
|
|
stop_id = Column(String(64), nullable=False, default='')
|
|
stop_product_id = Column(String(64), nullable=False, default='')
|
|
contract_id = Column(String(64), nullable=False, default='')
|
|
contract_product_id = Column(String(64), nullable=False, default='')
|
|
product_id = Column(String(64), nullable=False, default='')
|
|
package_spec = Column(String(200), nullable=False, default='')
|
|
model = Column(String(100), nullable=False, default='')
|
|
unit = Column(String(20), nullable=False, default='')
|
|
product_name = Column(String(200), nullable=False, default='')
|
|
# No default: explicit None must persist as SQL NULL rather than an empty alias.
|
|
alias_name = Column(String(200), nullable=True)
|
|
brand_mode = Column(String(20), nullable=False, default='')
|
|
brand_id = Column(String(64), nullable=False, default='')
|
|
brand_name = Column(String(200), nullable=False, default='')
|
|
source_product_name = Column(String(200), nullable=False, default='')
|
|
source_brand_mode = Column(String(20), nullable=False, default='')
|
|
source_brand_id = Column(String(64), nullable=False, default='')
|
|
source_brand_name = Column(String(200), nullable=False, default='')
|
|
tenant_no = Column(String(64), nullable=False)
|
|
order_num = Column(Integer, nullable=True)
|
|
remark = Column(String(512), nullable=True)
|
|
create_by = Column(String(64), nullable=True)
|
|
create_dept_id = Column(String(64), nullable=False, default='')
|
|
create_time = Column(DateTime, nullable=False, default=datetime.now)
|
|
update_by = Column(String(64), nullable=True)
|
|
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now)
|
|
del_flag = Column(SmallInteger, nullable=False, default=0)
|