import uuid
from sqlalchemy import Column, String, Time, Date, text, ForeignKey, Float, Boolean
from sqlalchemy.orm import relationship
from sqlalchemy.orm import Mapped, mapped_column
from app.models.base import BaseModelWihoutId, BaseModel


class ReportPresensi(BaseModelWihoutId):
    __tablename__ = "report_presensi"
    id: Mapped[str] = mapped_column(
        String(36),
        default=lambda: str(uuid.uuid4()),
    )
    user_id = Column(
        String(36), ForeignKey("users.id", ondelete="NO ACTION"), primary_key=True
    )
    tanggal = Column(Date, primary_key=True)
    jam_masuk = Column(Time)
    jam_pulang = Column(Time)
    shift = Column(String(255))
    status_masuk = Column(String(255))
    status_pulang = Column(String(255))
    status = Column(String(255))
    override_source = Column(String(255))
    override_id = Column(String(255))
    total_lembur = Column(Float, default=text("0"))


class CalendarDates(BaseModelWihoutId):
    __tablename__ = "calendar_dates"
    tanggal = Column(Date, primary_key=True)
    is_holiday = Column(Boolean, default=False)
    keterangan = Column(String(255))
