from sqlalchemy import Column, String, Date, Integer, DateTime, ForeignKey, func, text
from sqlalchemy.orm import relationship
from app.models.base import BaseModel


class PengajuanTerlambat(BaseModel):
    __tablename__ = "pengajuan_terlambat"

    user_id = Column(
        String(36), ForeignKey("users.id", ondelete="NO ACTION"), nullable=True
    )
    kanit_id = Column(
        String(36), ForeignKey("users.id", ondelete="NO ACTION"), nullable=True
    )
    manager_id = Column(
        String(36), ForeignKey("users.id", ondelete="NO ACTION"), nullable=True
    )
    tu_id = Column(
        String(36), ForeignKey("users.id", ondelete="NO ACTION"), nullable=True
    )

    status_slug = Column(
        String(255),
        ForeignKey("status.slug", ondelete="NO ACTION"),
        nullable=False,
        server_default=text("'diajukan'"),
        default=text("'diajukan'"),
    )

    tanggal = Column(Date, nullable=False)
    penyebab = Column(String(255), nullable=False)
    status = relationship("Status", foreign_keys=[status_slug], lazy="joined")
    user = relationship("User", foreign_keys=[user_id], lazy="joined")
    kanit = relationship("User", foreign_keys=[kanit_id], lazy="joined")
    manager = relationship("User", foreign_keys=[manager_id], lazy="joined")
    tu = relationship("User", foreign_keys=[tu_id], lazy="joined")
