schema.py 965 Bytes
import re

from typing import Optional
from pydantic import BaseModel, ConfigDict, Field, root_validator
from fastapi import Query

class OrmBaseModel(BaseModel):
    model_config = ConfigDict(from_attributes=True)


class SearchQueryParams(BaseModel):
    page: Optional[int] = Query(default=1, le=100)
    q: Optional[str] = Query(default=None, min_length=3, max_length=128)
    order: Optional[str] = Query(default=None, max_length=5)
    is_class: Optional[bool] = Query(default=None)
    class_: Optional[str] = Query(default=None)

class QueryParams(BaseModel):
    id: Optional[str] = Query(default=None)
    gestion: Optional[int] = Query(default=None)
    nivel: Optional[str] = Query(default=None)

class DailyParams(BaseModel):
    transferencias: Optional[bool] = Query(default=False)
    dias: Optional[int] = Query(default=None)
    entidad: Optional[int] = Query(default=None, ge=0, le=10000)
    page: Optional[int] = Query(default=1, ge=1, le=100)