deliveryman-api/app/models/point.py
2025-01-07 11:01:44 +08:00

30 lines
1.0 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, DECIMAL
from sqlalchemy.sql import func
from pydantic import BaseModel, Field
from typing import Optional
from datetime import datetime
from .database import Base
class PointRecordDB(Base):
__tablename__ = "point_records"
id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(Integer, ForeignKey("users.userid"), nullable=False)
points = Column(DECIMAL(10,1), nullable=False)
description = Column(String(200), nullable=False)
create_time = Column(DateTime(timezone=True), server_default=func.now())
class PointRecordCreate(BaseModel):
user_id: int = Field(..., description="用户ID")
points: float = Field(..., description="积分变动值,可为正或负")
description: str = Field(..., min_length=1, max_length=200)
class PointRecordInfo(BaseModel):
id: int
user_id: int
points: float
description: str
create_time: datetime
class Config:
from_attributes = True