Интегрирован wesp в сайт
CI / quality (push) Canceled after 0s

This commit is contained in:
влад
2026-07-17 12:57:18 +03:00
parent 5dfa06ddbe
commit 355c0ef9f1
883 changed files with 194576 additions and 177 deletions
@@ -0,0 +1,30 @@
from __future__ import annotations
from app.modules.zootech.wesp_bridge_db import db
from app.modules.zootech.lab.db_guard import retry_locked
from app.modules.zootech.lab.models import (
LabAnimalProfile,
LabProfileNorm,
LabRecipeRation,
)
@retry_locked
def delete_animal_profile(profile_id: str, user_id: str = "system") -> dict:
pid = (profile_id or "").strip()
if not pid:
raise LookupError("Профиль не найден")
profile = LabAnimalProfile.query.filter_by(id=pid, is_deleted=False).first()
if profile is None:
raise LookupError("Профиль не найден")
LabProfileNorm.query.filter_by(profile_id=profile.id).delete(synchronize_session=False)
rations = LabRecipeRation.query.filter_by(animal_profile_id=profile.id, is_deleted=False).all()
for header in rations:
header.animal_profile_id = None
header.updated_by = user_id
profile.updated_by = user_id
profile.soft_delete(user_id)
db.session.commit()
return {"id": profile.id, "deleted": True}