first commit

This commit is contained in:
2025-07-24 20:13:47 +03:00
commit 94b7585f8b
175 changed files with 85264 additions and 0 deletions

View File

@ -0,0 +1,66 @@
from time import time
from fastapi import APIRouter
from starlette.requests import Request
from app import mongo
from app.utils.response_util import response
router = APIRouter()
@router.get("", tags=[""])
async def get(full: bool):
start_time = time()
return response({
"summaries": await mongo.get_all_summaries(full)
}, start_time=start_time)
@router.post("/reorder", tags=[""])
async def reorder(params: dict, request: Request):
start_time = time()
deal_id = params["dealId"]
status_id = params["statusId"]
index = params["index"]
comment = params["comment"]
deal = await mongo.deals_collection.find_one({"id": deal_id}, {"_id": False})
if not deal:
return response({"message": "Сделка не найдена", "ok": False}, start_time=start_time)
update_fields = {
"statusId": status_id,
"index": index
}
new_status = await mongo.statuses_collection.find_one({"id": status_id}, {"_id": False})
if new_status and new_status.get("name") == "Завершено":
update_fields["completedAt"] = mongo.created_at()
old_status_id = deal.get("statusId")
await mongo.deals_collection.update_one(
{"id": deal_id},
{"$set": update_fields}
)
if old_status_id != status_id:
new_entry = {
"changedAt": mongo.created_at(),
"fromStatusId": old_status_id,
"toStatusId": status_id,
"userId": request.state.user["id"],
"comment": comment
}
await mongo.deals_collection.update_one(
{"id": deal_id},
{"$push": {"statusHistory": new_entry}}
)
return response({
"ok": True,
"summaries": await mongo.get_all_summaries(False)
}, start_time=start_time)