| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- from datetime import datetime
- from decimal import Decimal
- from sqlalchemy import DateTime, String, Text, Numeric, JSON
- from sqlalchemy.orm import Mapped, mapped_column
- from app.common.enums import PermissionFilterStrategy
- from app.core.base_model import PaymentModelMixin, TenantMixin
- from .enums import PointsStatusEnum
- class PointsModel(PaymentModelMixin, TenantMixin):
- """积分模型"""
- __tablename__ = "pay_points"
- __table_args__ = {"comment": "积分表"}
- __permission_strategy__ = PermissionFilterStrategy.ENTERPRISE_BASED
- points: Mapped[Decimal] = mapped_column(
- Numeric(12, 2), default=Decimal("0.00"), comment="积分余额"
- )
- status: Mapped[str] = mapped_column(
- String(32),
- default=PointsStatusEnum.ACTIVE.value,
- comment="状态: ACTIVE/FROZEN"
- )
- rule: Mapped[str | None] = mapped_column(
- String(64), comment="积分规则"
- )
- ext_info: Mapped[JSON | None] = mapped_column(JSON, comment="扩展信息")
- class PointsRecordModel(PaymentModelMixin, TenantMixin):
- """积分变动记录模型"""
- __tablename__ = "pay_points_record"
- __table_args__ = {"comment": "积分变动记录表"}
- __permission_strategy__ = PermissionFilterStrategy.ENTERPRISE_BASED
-
- enterprise_id: Mapped[str | None] = mapped_column(
- String(64), index=True, comment="企业ID"
- )
- employee_id: Mapped[str | None] = mapped_column(
- String(64), index=True, comment="员工ID"
- )
- points: Mapped[Decimal] = mapped_column(
- Numeric(12, 2), default=Decimal("0.00"), comment="变动积分"
- )
- balance: Mapped[Decimal] = mapped_column(
- Numeric(12, 2), default=Decimal("0.00"), comment="变动后余额"
- )
- type: Mapped[str | None] = mapped_column(
- String(32), default=None, comment="变动类型: ADD/DEDUCT"
- )
- business_type: Mapped[str | None] = mapped_column(
- String(32), default=None, comment="业务类型: TRANSFER"
- )
- business_id: Mapped[str | None] = mapped_column(
- String(64), default=None, comment="业务ID"
- )
- remark: Mapped[str | None] = mapped_column(Text, default=None, comment="备注")
- ext_info: Mapped[JSON | None] = mapped_column(JSON, comment="扩展信息")
|