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'")