barker/barker/barker/models/settlement.py

33 lines
1.0 KiB
Python

import uuid
from barker.models.meta import Base
from sqlalchemy import Column, ForeignKey, Integer, Numeric, UniqueConstraint, text
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import relationship
class Settlement(Base):
__tablename__ = "settlements"
__table_args__ = (UniqueConstraint("voucher_id", "settled"),)
id = Column(
"id", UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()"), default=uuid.uuid4
)
voucher_id = Column(
"voucher_id",
UUID(as_uuid=True),
ForeignKey("vouchers.id"),
nullable=False,
index=True,
)
settled = Column("settled", Integer, ForeignKey("settle_options.id"), nullable=False)
amount = Column("amount", Numeric(precision=15, scale=2), nullable=False)
settle_option = relationship("SettleOption")
def __init__(self, voucher_id=None, settled=None, amount=None, id_=None):
self.id = id_
self.voucher_id = voucher_id
self.settled = settled
self.amount = amount