| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- from datetime import datetime
- from decimal import Decimal
- from typing import Optional
- from pydantic import BaseModel, ConfigDict, Field
- class PointsCreateSchema(BaseModel):
- """创建积分账户请求"""
- tenant_id: int = Field(description="租户ID")
- points: Decimal = Field(default=Decimal("0.00"), max_digits=10, decimal_places=2, description="初始积分")
- class PointsUpdateSchema(BaseModel):
- """更新积分请求"""
- points: Decimal = Field(max_digits=10, decimal_places=2, description="积分余额")
- class PointsOutSchema(BaseModel):
- """积分详情响应"""
- model_config = ConfigDict(from_attributes=True)
- id: int = Field(description="主键ID")
- tenant_id: Optional[int] = Field(default=None, description="租户ID")
- points: Optional[Decimal] = Field(default=Decimal("0.00"), max_digits=10, decimal_places=2, description="积分余额")
- status: Optional[str] = Field(default=None, description="状态")
- created_time: Optional[datetime] = Field(default=None, description="创建时间")
- updated_time: Optional[datetime] = Field(default=None, description="更新时间")
- class PointsChangeSchema(BaseModel):
- """积分变动请求"""
- points: Decimal = Field(max_digits=10, decimal_places=2, gt=0, description="变动积分")
- change_type: str = Field(description="变动类型: ADD/DEDUCT")
- enterprise_id: Optional[str] = Field(default=None, description="企业ID")
- employee_id: Optional[str] = Field(default=None, description="员工ID")
- business_id: Optional[str] = Field(default=None, description="业务ID")
- business_type: Optional[str] = Field(default=None, description="业务类型")
- remark: Optional[str] = Field(default=None, description="备注")
- class PointsRecordOutSchema(BaseModel):
- """积分记录响应"""
- model_config = ConfigDict(from_attributes=True)
- tenant_id: Optional[int] = Field(default=None, description="租户ID")
- enterprise_id: Optional[str] = Field(default=None, description="企业ID")
- employee_id: Optional[str] = Field(default=None, description="员工ID")
- points: Optional[Decimal] = Field(default=Decimal("0.00"), max_digits=10, decimal_places=2, description="变动积分")
- balance: Optional[Decimal] = Field(default=Decimal("0.00"), max_digits=10, decimal_places=2, description="变动后余额")
- type: Optional[str] = Field(default=None, description="变动类型")
- business_type: Optional[str] = Field(default=None, description="业务类型")
- business_id: Optional[str] = Field(default=None, description="业务ID")
- remark: Optional[str] = Field(default=None, description="备注")
- created_time: Optional[datetime] = Field(default=None, description="创建时间")
|