from app.extensions import db


class Kehadiran(db.Model):
    __tablename__ = 'kehadiran'

    id = db.Column(db.Integer, primary_key=True)
    school_id = db.Column(db.Integer, db.ForeignKey('schools.id'), nullable=False)
    murid_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    kelas_id = db.Column(db.Integer, db.ForeignKey('kelas.id'), nullable=False)
    date = db.Column(db.Date, nullable=False)
    status = db.Column(db.Enum('hadir', 'izin', 'sakit', 'alpha', name='kehadiran_status'), nullable=False)

    murid = db.relationship('User', backref='kehadiran_list')
    kelas = db.relationship('Kelas', backref='kehadiran_list')

    __table_args__ = (
        db.UniqueConstraint('murid_id', 'kelas_id', 'date', name='uq_kehadiran_per_day'),
    )

    def __repr__(self):
        return f'<Kehadiran {self.date} {self.status}>'
