Files
2026-09-03 21:32:43 +05:30

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)