27 lines
1.3 KiB
Python
27 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import date, datetime
|
|
|
|
from sqlalchemy import Date, DateTime, Float, ForeignKey, Integer, UniqueConstraint
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
|
|
from app.core.db.common import CommonBase
|
|
|
|
|
|
class CashPaymentRuleSetting(CommonBase):
|
|
__tablename__ = "accounting_cash_payment_rule_settings"
|
|
__table_args__ = (
|
|
UniqueConstraint("tenant_id", name="uq_cash_payment_rule_settings_tenant"),
|
|
)
|
|
|
|
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
|
tenant_id: Mapped[int] = mapped_column(ForeignKey("tenants.id", ondelete="CASCADE"), index=True)
|
|
cash_limit: Mapped[float] = mapped_column(Float, default=10000.0)
|
|
effective_from: Mapped[date] = mapped_column(Date, default=date(2017, 4, 1))
|
|
split_window_days: Mapped[int] = mapped_column(Integer, default=3)
|
|
near_limit_percent: Mapped[float] = mapped_column(Float, default=80.0)
|
|
max_allocation_days: Mapped[int] = mapped_column(Integer, default=5)
|
|
updated_by_user_id: Mapped[int | None] = mapped_column(ForeignKey("users.id", ondelete="SET NULL"), nullable=True)
|
|
created_at_utc: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)
|
|
updated_at_utc: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|