deliveryman-api/app/models/statistics.py
2025-03-11 08:59:27 +08:00

52 lines
2.0 KiB
Python

from sqlalchemy import Column, Integer, String, Float, DateTime, Date, ForeignKey
from sqlalchemy.sql import func
from app.models.database import Base
from datetime import datetime
class DailyCommunityOrderStats(Base):
"""每日小区订单统计数据表"""
__tablename__ = "daily_community_order_stats"
id = Column(Integer, primary_key=True, autoincrement=True)
# 统计日期
stats_date = Column(Date, nullable=False, index=True)
# 小区信息
community_id = Column(Integer, ForeignKey("communities.id"), nullable=False, index=True)
community_name = Column(String(100), nullable=False)
# 订单统计
order_count = Column(Integer, nullable=False, default=0) # 订单数量
total_original_amount = Column(Float, nullable=False, default=0) # 总订单金额
total_final_amount = Column(Float, nullable=False, default=0) # 总支付金额
# 元数据
create_time = Column(DateTime(timezone=True), server_default=func.now())
update_time = Column(DateTime(timezone=True), onupdate=func.now())
class Config:
from_attributes = True
class DailyOrderStats(Base):
"""每日订单总体统计数据表"""
__tablename__ = "daily_order_stats"
id = Column(Integer, primary_key=True, autoincrement=True)
# 统计日期
stats_date = Column(Date, nullable=False, unique=True, index=True)
# 订单统计
total_order_count = Column(Integer, nullable=False, default=0) # 总订单数量
total_original_amount = Column(Float, nullable=False, default=0) # 总订单金额
total_final_amount = Column(Float, nullable=False, default=0) # 总支付金额
total_communities = Column(Integer, nullable=False, default=0) # 有订单的小区数量
# 元数据
create_time = Column(DateTime(timezone=True), server_default=func.now())
update_time = Column(DateTime(timezone=True), onupdate=func.now())
class Config:
from_attributes = True