Files
marquiz-metrics/app/api/v1/schemas/goal.py
13orlov b05a6165aa
All checks were successful
continuous-integration/drone/push Build is passing
good release 2.0 code name: chiki-puki
2025-08-31 22:28:24 +01:00

41 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from pydantic import BaseModel, Field
from typing import List, Dict, Any
# Схема для ОДНОЙ цели в списке (для GET запроса)
class Goal(BaseModel):
id: int
name: str
type: str
# Схема для ответа со списком целей
class GoalListResponse(BaseModel):
goals: List[Goal]
# Схема для ОДНОЙ кастомной цели в запросе на создание (для POST)
class CustomGoalIn(BaseModel):
identifier: str = Field(..., description="Уникальный идентификатор JS-события")
name: str = Field(..., max_length=255, description="Название цели, которое будет видно в Метрике")
# Обновленная схема запроса на создание целей
class GoalCreateRequest(BaseModel):
goals: List[CustomGoalIn]
# Схема для ОДНОЙ созданной цели в ответе
class CreatedGoal(BaseModel):
id: int
name: str
# Схема ответа после создания целей
class GoalCreateResponse(BaseModel):
created_goals: List[CreatedGoal]
# --- Схемы для массового удаления ---
class GoalDeleteRequest(BaseModel):
"""Схема запроса на массовое удаление целей."""
goal_ids: List[int] = Field(..., description="Список ID целей для удаления")
class GoalDeleteResponse(BaseModel):
"""Схема ответа после массового удаления."""
deleted_count: int
failed_ids: Dict[int, Any]
message: str