from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Enum from sqlalchemy.sql import func from sqlalchemy.orm import relationship from ..database import Base from ..models.request import RequestStatus, RequestPriority class Employee(Base): __tablename__ = "employees" id = Column(Integer, primary_key=True, index=True) first_name = Column(String, nullable=False) last_name = Column(String, nullable=False) department = Column(String, nullable=False) office = Column(String, nullable=False) password = Column(String, nullable=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) requests = relationship("Request", back_populates="employee") class Request(Base): __tablename__ = "requests" id = Column(Integer, primary_key=True, index=True) employee_id = Column(Integer, ForeignKey("employees.id")) department = Column(String, nullable=False) request_type = Column(String, nullable=False) priority = Column(Enum(RequestPriority), nullable=False) status = Column(Enum(RequestStatus), default=RequestStatus.NEW) description = Column(String) created_at = Column(DateTime(timezone=True), server_default=func.now()) employee = relationship("Employee", back_populates="requests")