31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
from pydantic import BaseModel, Field
|
||
from typing import List
|
||
|
||
# Схема для ОДНОЙ цели в списке (для 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] |