feat(goals): Add endpoints to get and create custom goals
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-08-25 18:47:23 +01:00
parent 4fa63f16be
commit c207d49a5c
2 changed files with 98 additions and 61 deletions

View File

@@ -1,26 +1,31 @@
from pydantic import BaseModel, Field
from typing import List
class GoalCreateRequest(BaseModel):
"""Схема запроса на создание стандартных целей."""
goal_identifiers: List[str] = Field(
...,
description="Список идентификаторов стандартных целей для квиза.",
# --- ИЗМЕНЕНИЕ ЗДЕСЬ: Обновляем пример на правильный и полный ---
examples=[[
"Marquiz-start",
"Marquiz-startquiz",
"Marquiz-form",
"Marquiz-result",
"Marquiz-contacts1"
]]
)
# Схема для ОДНОЙ цели в списке (для 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[Goal]
created_goals: List[CreatedGoal]