Initial clean commit of the project
This commit is contained in:
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'")
|
||||
Reference in New Issue
Block a user