Initial clean commit of the project
This commit is contained in:
0
app/api/v1/schemas/__init__.py
Normal file
0
app/api/v1/schemas/__init__.py
Normal file
10
app/api/v1/schemas/auth.py
Normal file
10
app/api/v1/schemas/auth.py
Normal 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
|
||||
23
app/api/v1/schemas/counter.py
Normal file
23
app/api/v1/schemas/counter.py
Normal 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'")
|
||||
26
app/api/v1/schemas/goal.py
Normal file
26
app/api/v1/schemas/goal.py
Normal 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]
|
||||
Reference in New Issue
Block a user