from sqlalchemy import Column, Date, Integer, String, Boolean, DateTime, Numeric, Enum

from models.base import Base, TimestampMixin

class DiscountCoupon(Base,TimestampMixin):
    __tablename__ = 'discount_coupons'
    
    id = Column(Integer, primary_key=True)
    code = Column(String(12), unique=True, nullable=False)
    description = Column(String(500))
    status = Column(Boolean, default=True)  # True=Active, False=Inactive
    uses_per_customer = Column(Integer, default=1)
    start_date = Column(Date)
    end_date = Column(Date)
    discount_type = Column(Enum('fixed', 'percentage', name='discount_type'))
    discount_value = Column(Numeric(10, 2))
    max_discount = Column(Numeric(10, 2))
    min_cart_value = Column(Numeric(10, 2))
    rule_type=Column(Boolean, default=False)
    is_applicable_for_course=Column(Boolean, default=False,nullable=True)
    is_applicable_for_event=Column(Boolean, default=False,nullable=True)
