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 ] }