from sqlalchemy import Column, Integer, ForeignKey, Date, Boolean, Float, String
from sqlalchemy.orm import relationship
from sqlalchemy.orm import Session
from models.base import Base, TimestampMixin


class BursaryDiscountInfo(Base, TimestampMixin):
    __tablename__ = 'bursary_discount_info'
    id = Column(Integer, primary_key=True, autoincrement=True, index=True)
    academic_year_id = Column(Integer, ForeignKey("academic_year.id"))
    start_date = Column(Date, nullable=False)
    end_date = Column(Date, nullable=False)
    is_enabled = Column(Boolean, default=False)
    academic_year = relationship("AcademicYear")


class BursaryDiscountApplication(Base, TimestampMixin):
    __tablename__ = 'bursary_discount_application'
    id = Column(Integer, primary_key=True, autoincrement=True, index=True)
    application_number=Column(String(255),nullable=False)
    parent_id = Column(Integer, ForeignKey("parents.id"),nullable=True)
    academic_year_id = Column(Integer, ForeignKey("academic_year.id"))
    participant_id = Column(Integer,ForeignKey("participants.id"))

    created_by=Column(Integer,nullable=True)
    is_parent_user = Column(Boolean, default=False)
    is_fully_allocated = Column(Boolean, default=None, nullable=True)
    is_approved = Column(Boolean, default=False)
    academic_year = relationship("AcademicYear")
    parent = relationship("Parent")
    participant = relationship("Participant")




class BursaryCourseAllocation(Base,TimestampMixin):
    __tablename__ = 'bursary_course_allocation'
    id = Column(Integer, primary_key=True, autoincrement=True, index=True)
    bursary_discount_application_id = Column(Integer, ForeignKey("bursary_discount_application.id"))
    course_id=Column(Integer, ForeignKey("course.id"))
    is_used = Column(Boolean, default=False)
    discount_price=Column(Float,default=0)
    course=relationship("Course")
    application=relationship("BursaryDiscountApplication")




