from datetime import datetime
from app.extensions import db


class Nilai(db.Model):
    __tablename__ = 'nilai'

    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)
    mata_pelajaran_id = db.Column(db.Integer, db.ForeignKey('mata_pelajaran.id'), nullable=False)
    kelas_id = db.Column(db.Integer, db.ForeignKey('kelas.id'), nullable=False)
    type = db.Column(db.Enum('tugas', 'uts', 'uas', 'kuis', 'praktik', name='nilai_type'), nullable=False)
    score = db.Column(db.Numeric(5, 2), nullable=False)
    description = db.Column(db.String(255), nullable=True)
    created_at = db.Column(db.DateTime, default=datetime.utcnow)

    murid = db.relationship('User', backref='nilai_list')
    mata_pelajaran = db.relationship('MataPelajaran', backref='nilai_list')
    kelas = db.relationship('Kelas', backref='nilai_list')

    def __repr__(self):
        return f'<Nilai {self.type} {self.score}>'
