1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00
Files
AdministrationItDepartmens/backend/app/models/request.py
MoonTestUse1 fec52c777b Fix tests
2025-01-06 23:40:39 +06:00

42 lines
1.3 KiB
Python

"""Request model"""
from enum import Enum
from sqlalchemy import Column, Integer, String, Enum as SQLEnum, ForeignKey, DateTime
from sqlalchemy.orm import relationship
from datetime import datetime
from ..database import Base
class RequestStatus(str, Enum):
"""Request status enum"""
NEW = "new"
IN_PROGRESS = "in_progress"
COMPLETED = "completed"
REJECTED = "rejected"
class RequestPriority(str, Enum):
"""Request priority enum"""
LOW = "low"
MEDIUM = "medium"
HIGH = "high"
class RequestType(str, Enum):
"""Request type enum"""
VACATION = "vacation"
SICK_LEAVE = "sick_leave"
EQUIPMENT = "equipment"
OTHER = "other"
class Request(Base):
"""Request model"""
__tablename__ = "requests"
id = Column(Integer, primary_key=True, index=True)
request_type = Column(SQLEnum(RequestType), nullable=False)
description = Column(String, nullable=False)
priority = Column(SQLEnum(RequestPriority), nullable=False, default=RequestPriority.MEDIUM)
status = Column(SQLEnum(RequestStatus), nullable=False, default=RequestStatus.NEW)
created_at = Column(DateTime, nullable=False, default=datetime.utcnow)
employee_id = Column(Integer, ForeignKey("employees.id"), nullable=False)
employee = relationship("Employee", back_populates="requests")