1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

Fix tests

This commit is contained in:
MoonTestUse1
2025-01-06 23:40:39 +06:00
parent 161361609d
commit fec52c777b
17 changed files with 249 additions and 368 deletions

View File

@@ -1,7 +1,10 @@
"""Models initialization"""
from .base import Base
from ..database import Base, engine
from .employee import Employee
from .request import Request
from .token import Token
# Создаем все таблицы
Base.metadata.create_all(bind=engine)
__all__ = ['Base', 'Employee', 'Request', 'Token']

View File

@@ -1,10 +1,12 @@
"""Employee model"""
from sqlalchemy import Column, Integer, String, DateTime
from sqlalchemy.sql import func
from sqlalchemy import Column, Integer, String, Boolean, DateTime
from sqlalchemy.orm import relationship
from .base import Base
from datetime import datetime
from ..database import Base
class Employee(Base):
"""Employee model"""
__tablename__ = "employees"
id = Column(Integer, primary_key=True, index=True)
@@ -13,7 +15,8 @@ class Employee(Base):
department = Column(String, nullable=False)
office = Column(String, nullable=False)
hashed_password = Column(String, nullable=False)
created_at = Column(DateTime(timezone=True), server_default=func.now())
is_active = Column(Boolean, default=True)
is_admin = Column(Boolean, default=False)
created_at = Column(DateTime, nullable=False, default=datetime.utcnow)
# Определяем отношение к Request
requests = relationship("Request", back_populates="employee", cascade="all, delete-orphan")
requests = relationship("Request", back_populates="employee")

View File

@@ -1,31 +1,41 @@
"""Request model"""
from enum import Enum
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime
from sqlalchemy.sql import func
from sqlalchemy import Column, Integer, String, Enum as SQLEnum, ForeignKey, DateTime
from sqlalchemy.orm import relationship
from .base import Base
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(String, index=True)
description = Column(String)
priority = Column(String)
status = Column(String, default=RequestStatus.NEW)
employee_id = Column(Integer, ForeignKey("employees.id"))
created_at = Column(DateTime(timezone=True), server_default=func.now())
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
employee = relationship("Employee", back_populates="requests")

View File

@@ -1,12 +1,14 @@
"""Token model"""
from sqlalchemy import Column, Integer, String, DateTime
from sqlalchemy.sql import func
from .base import Base
from datetime import datetime
from ..database import Base
class Token(Base):
"""Token model"""
__tablename__ = "tokens"
id = Column(Integer, primary_key=True, index=True)
token = Column(String, unique=True, index=True)
user_id = Column(Integer, index=True) # -1 для админа, остальные для сотрудников
created_at = Column(DateTime(timezone=True), server_default=func.now())
employee_id = Column(Integer)
created_at = Column(DateTime, default=datetime.utcnow)