project.py 1.55 KB
from typing import List

from presupuestov1.schema import BaseModel, OrmBaseModel


class ProyectoResumenObj(BaseModel):
    codigo: int | str
    desc: str | None
    desc_padre: str | None
    devengado: float

class ProyectoResumen(OrmBaseModel):
    gestion: int
    codigo: str
    codigo_padre: str | None
    devengado: float
    n_entidad: int
    n_objeto: int
    n_finfun: int
    n_acteco: int
    desc: str
    desc_padre: str | None
    entidad: str | List[ProyectoResumenObj]
    objeto: str | List[ProyectoResumenObj]
    finfun: str | List[ProyectoResumenObj]
    acteco: str | List[ProyectoResumenObj]


class ProyectoClasificadores(OrmBaseModel):
    gestion: int
    tipo: str
    nivel: str
    programa_proyecto: str
    codigo: str
    codigo_padre: str | None
    devengado: float
    desc: str
    desc_padre: str | None


class ProyectoProyectos(OrmBaseModel):
    nivel: str
    codigo: str
    desc: str
    devengado: float


class ProjectSearch(BaseModel):
    devengado: float
    is_class: bool
    class_: str
    texto: str
    metadatos: str


class SearchHitHighlight(BaseModel):
    field: str
    matched_tokens: List[str]
    snippet: str


class SearchHits(BaseModel):
    document: ProjectSearch
    highlights: List[SearchHitHighlight]


class SearchFacet_(BaseModel):
    value: str
    count: int


class SearchFacet(BaseModel):
    counts: List[SearchFacet_]
    field_name: str


class Search(BaseModel):
    facet_counts: List[SearchFacet]
    found: int
    out_of: int
    page: int
    search_time_ms: int
    hits: List[SearchHits]