Initial clean commit of the project

This commit is contained in:
2025-08-23 21:47:21 +01:00
commit 0ef448008a
31 changed files with 1455 additions and 0 deletions

View File

View File

@@ -0,0 +1,10 @@
from pydantic import BaseModel, Field
class TokenRequest(BaseModel):
"""Схема запроса для получения токена."""
code: str = Field(..., description="Временный код авторизации от Яндекса")
class TokenResponse(BaseModel):
"""Схема ответа с токеном доступа."""
access_token: str
token_type: str

View File

@@ -0,0 +1,23 @@
from pydantic import BaseModel, Field, HttpUrl
from typing import List, Optional
class Counter(BaseModel):
"""Схема для одного счетчика Яндекс.Метрики."""
id: int = Field(..., description="ID счетчика")
name: str = Field(..., description="Имя счетчика (название сайта)")
site: str = Field(..., description="URL сайта, привязанного к счетчику")
class CounterListResponse(BaseModel):
"""Схема для ответа со списком счетчиков."""
counters: List[Counter]
class CounterCreateRequest(BaseModel):
"""Схема запроса на создание нового счетчика."""
# Используем HttpUrl для автоматической валидации, что это валидный URL
site_url: HttpUrl = Field(..., description="URL сайта для нового счетчика, например 'https://my-quiz.ru'")
class CounterCreateResponse(BaseModel):
"""Схема ответа после создания счетчика."""
id: int
name: str
code_status: str = Field(..., description="Статус установки кода счетчика, например 'CS_NOT_FOUND'")

View File

@@ -0,0 +1,26 @@
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"
]]
)
class Goal(BaseModel):
"""Схема для одной созданной цели (в ответе)."""
id: int
name: str
class GoalCreateResponse(BaseModel):
"""Схема ответа после создания целей."""
created_goals: List[Goal]