2025-05-07 20:23:46 +05:00

34 lines
981 B
Python

from uuid import UUID
from pydantic import BaseModel, PositiveInt, NegativeInt, UUID4
class SuccessChatFromAiSchema(BaseModel):
user_id: PositiveInt | None
slice_id: UUID4 | None
reason: str | None
class ResponseFromGeminiSchema(BaseModel):
success: list[SuccessChatFromAiSchema] | None
def model_dump_without_duplicate(self) -> dict:
if not self.success:
return self.model_dump()
# Словарь для хранения уникальных элементов по slice_id
unique_items: dict[UUID, SuccessChatFromAiSchema] = {}
for item in self.success:
if item.slice_id is not None:
if item.slice_id not in unique_items:
unique_items[item.slice_id] = item
filtered_success = list(unique_items.values())
return {
"success": [
item.model_dump()
for item in filtered_success
]
}