deliveryman-api/app/models/user_point_log.py
2025-01-13 22:03:58 +08:00

33 lines
1.1 KiB
Python

from sqlalchemy import Column, Integer, DateTime, ForeignKey, Enum, String
from sqlalchemy.sql import func
from .database import Base
import enum
from pydantic import BaseModel
from datetime import datetime
from typing import Optional
class PointChangeType(str, enum.Enum):
CONSUME_RETURN = "CONSUME_RETURN" # 消费返还
CONSUME_DEDUCT = "CONSUME_DEDUCT" # 消费抵扣
SYSTEM_SEND = "SYSTEM_SEND" # 系统发放
class UserPointLogDB(Base):
__tablename__ = "user_point_logs"
id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(Integer, ForeignKey("users.userid"), nullable=False)
change_amount = Column(Integer, nullable=False) # 变动数量,正数为增加,负数为减少
type = Column(Enum(PointChangeType), nullable=False)
remark = Column(String(200)) # 备注说明
create_time = Column(DateTime(timezone=True), server_default=func.now())
class UserPointLogInfo(BaseModel):
id: int
user_id: int
change_amount: int
type: PointChangeType
remark: Optional[str]
create_time: datetime
class Config:
from_attributes = True