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

add websockets suppor93

This commit is contained in:
MoonTestUse1
2025-01-05 02:44:04 +06:00
parent c3c20f6e6f
commit af7c903b5d
5 changed files with 22 additions and 21 deletions

View File

@@ -1,19 +1,19 @@
"""Database configuration"""
"""Database session configuration"""
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from .core.config import settings
from .db.base import Base
from .config import settings
# Для создания таблиц импортируем модели
from .models.employee import Employee # noqa
from .models.request import Request # noqa
from .models.token import Token # noqa
# Создаем URL для подключения к базе данных
SQLALCHEMY_DATABASE_URL = settings.DATABASE_URL
# Создаем движок SQLAlchemy
engine = create_engine(SQLALCHEMY_DATABASE_URL)
# Создаем фабрику сессий
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Функция для получения сессии базы данных
def get_db():
db = SessionLocal()
try:

View File

@@ -1,8 +1,4 @@
"""Import all models for Alembic autogenerate support"""
from app.db.base_class import Base
from app.models.employee import Employee
from app.models.request import Request
from app.models.token import Token
"""Database base configuration"""
from sqlalchemy.ext.declarative import declarative_base
# Импортируем все модели, чтобы Alembic мог их обнаружить
__all__ = ["Base", "Employee", "Request", "Token"]
Base = declarative_base()

View File

@@ -1,5 +1,6 @@
"""Models initialization"""
from .employee import Employee
from .request import Request
from .token import Token
__all__ = ['Employee', 'Request']
__all__ = ["Employee", "Request", "Token"]

View File

@@ -1,10 +1,11 @@
"""Employee model"""
from sqlalchemy import Column, Integer, String, DateTime
from sqlalchemy.sql import func
"""Employee models"""
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import relationship
from app.db.base_class import Base
from ..db.base import Base
class Employee(Base):
"""Employee model"""
__tablename__ = "employees"
id = Column(Integer, primary_key=True, index=True)
@@ -13,7 +14,6 @@ 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())
# Определяем отношение к Request
requests = relationship("Request", back_populates="employee", cascade="all, delete-orphan")

View File

@@ -2,7 +2,8 @@
from enum import Enum
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, Enum as SQLAlchemyEnum
from sqlalchemy.sql import func
from ..database import Base
from sqlalchemy.orm import relationship
from ..db.base import Base
class RequestStatus(str, Enum):
@@ -33,3 +34,6 @@ class Request(Base):
employee_id = Column(Integer, ForeignKey("employees.id", ondelete="CASCADE"), nullable=False)
created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
# Определяем отношение к Employee
employee = relationship("Employee", back_populates="requests")