23 lines
1.3 KiB
Python
23 lines
1.3 KiB
Python
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'") |