from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Date, Time, Enum from sqlalchemy.sql import func from sqlalchemy.orm import relationship from app.db.base import Base import enum class AttendanceStatus(enum.Enum): PRESENT = "present" ABSENT = "absent" LATE = "late" HALF_DAY = "half_day" class AttendanceRecord(Base): __tablename__ = "attendance_records" id = Column(Integer, primary_key=True, index=True) employee_id = Column(Integer, ForeignKey("employees.id"), nullable=False) date = Column(Date, nullable=False) clock_in = Column(Time) clock_out = Column(Time) hours_worked = Column(String) status = Column(Enum(AttendanceStatus), default=AttendanceStatus.PRESENT) notes = Column(String) created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), onupdate=func.now()) # Relationships employee = relationship("Employee", back_populates="attendance_records")