diff --git a/backend/app/crud/requests.py b/backend/app/crud/requests.py index fa774f3..210663d 100644 --- a/backend/app/crud/requests.py +++ b/backend/app/crud/requests.py @@ -30,6 +30,28 @@ def get_request(db: Session, request_id: int) -> Optional[Request]: """Get request by ID""" return db.query(Request).filter(Request.id == request_id).first() +def get_request_details(db: Session, request_id: int) -> Optional[Dict]: + """Get detailed request information including employee data""" + request = get_request(db, request_id) + if not request: + return None + + employee = employees.get_employee(db, request.employee_id) + if not employee: + return None + + return { + "id": request.id, + "request_type": request.request_type, + "description": request.description, + "priority": request.priority, + "status": request.status, + "department": request.department, + "created_at": request.created_at.isoformat(), + "employee_first_name": employee.first_name, + "employee_last_name": employee.last_name + } + def get_employee_requests(db: Session, employee_id: int) -> list[Request]: """Get employee's requests""" return db.query(Request).filter(Request.employee_id == employee_id).all() diff --git a/backend/app/routers/requests.py b/backend/app/routers/requests.py index f4382bc..a6404db 100644 --- a/backend/app/routers/requests.py +++ b/backend/app/routers/requests.py @@ -7,6 +7,8 @@ from ..crud import requests from ..schemas.request import Request, RequestCreate, RequestUpdate from ..models.request import RequestStatus from ..utils.auth import get_current_employee, get_current_admin +from ..utils.telegram import notify_new_request +import asyncio router = APIRouter() @@ -17,7 +19,10 @@ def create_request( current_employee: dict = Depends(get_current_employee) ): """Create new request""" - return requests.create_request(db, request, current_employee["id"]) + db_request = requests.create_request(db, request, current_employee["id"]) + # Отправляем уведомление в Telegram + asyncio.create_task(notify_new_request(db_request.id)) + return db_request @router.get("/my", response_model=List[Request]) def get_employee_requests( diff --git a/backend/test.db b/backend/test.db index d955339..9a95898 100644 Binary files a/backend/test.db and b/backend/test.db differ