Интегрирован 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
+37
View File
@@ -0,0 +1,37 @@
import uuid
from datetime import datetime
from typing import Any
from sqlalchemy import Boolean, Column, DateTime, String
from app.timeutil import utc_now_naive
class TimestampMixin:
created_at = Column(DateTime, default=datetime.utcnow, nullable=False)
updated_at = Column(
DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False
)
class SoftDeleteMixin:
is_deleted = Column(Boolean, default=False, nullable=True)
deleted_at = Column(DateTime, nullable=True)
deleted_by = Column(String(50), nullable=True)
def soft_delete(self, deleted_by_user: str = "system", **_: Any) -> None:
"""Мягкое удаление сущности.
Дополнительные аргументы игнорируются, чтобы сохранить совместимость
с вызовами из легаси-кода (reason, request и т.п.).
"""
if self.is_deleted:
return
self.is_deleted = True
self.deleted_at = utc_now_naive()
self.deleted_by = deleted_by_user
def default_uuid() -> str:
return str(uuid.uuid4())