from sqlalchemy import Column, Integer, String, Text, ForeignKey
from sqlalchemy.orm import relationship
from models.base import Base, TimestampMixin


class BursaryClassForm(Base, TimestampMixin):
    __tablename__ = 'bursary_class_form'
    id = Column(Integer, primary_key=True, autoincrement=True)
    parent_id = Column(Integer, ForeignKey('parents.id'), nullable=False)
    parent_primary_contact = Column(String(50), nullable=False)
    parent_secondary_contact = Column(String(50), nullable=True)
    parent_email = Column(String(50), nullable=True)
    file = Column(Text, nullable=True)
    
    # Relationship to participant details
    participant_details = relationship("BursaryClassFormDetails", back_populates="bursary_class")

class BursaryClassFormDetails(Base, TimestampMixin):
    __tablename__ = 'bursary_class_form_details'
    id = Column(Integer, primary_key=True, autoincrement=True)
    bursary_class_id = Column(Integer, ForeignKey('bursary_class_form.id'), nullable=False)
    participant_id = Column(Integer, ForeignKey('participants.id'), nullable=False)
    course_id = Column(Integer,  nullable=False)
    age = Column(Integer, nullable=True, default=None)
    programme_applying_for = Column(Text, nullable=True)
    
    # Relationship back to bursary class
    bursary_class = relationship("BursaryClassForm", back_populates="participant_details")
    