34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
import uuid
|
|
|
|
from datetime import datetime
|
|
|
|
from barker.models.meta import Base
|
|
from sqlalchemy import Column, ForeignKey, Numeric, UniqueConstraint, text
|
|
from sqlalchemy.dialects.postgresql import UUID
|
|
from sqlalchemy.orm import relationship
|
|
|
|
|
|
class CustomerDiscount(Base):
|
|
__tablename__ = "customer_discount"
|
|
__table_args__ = (UniqueConstraint("customer_id", "sale_category_id"),)
|
|
|
|
id = Column(
|
|
"id", UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()"), default=uuid.uuid4
|
|
)
|
|
customer_id = Column("customer_id", UUID(as_uuid=True), ForeignKey("customers.id"), nullable=False)
|
|
sale_category_id = Column("sale_category_id", UUID(as_uuid=True), ForeignKey("sale_categories.id"), nullable=False)
|
|
discount = Column("discount", Numeric(precision=15, scale=5), nullable=False)
|
|
|
|
customer = relationship("Customer", back_populates="discounts")
|
|
sale_category = relationship("SaleCategory")
|
|
|
|
def __init__(self, sale_category_id=None, discount=None, id_=None, customer_id=None, customer=None):
|
|
self.sale_category_id = sale_category_id
|
|
self.discount = discount
|
|
self.id = id_
|
|
self.date = datetime.utcnow()
|
|
if customer is None:
|
|
self.customer_id = customer_id
|
|
else:
|
|
self.customer = customer
|