alterações gerais
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
from ninja import Schema
|
||||
from ninja import Schema, ModelSchema, UploadedFile
|
||||
from typing import List, Optional
|
||||
from .models import TipoDiarioOficial
|
||||
from datetime import date
|
||||
|
||||
|
||||
class PaginaSchema(Schema):
|
||||
@ -61,3 +63,64 @@ class SugestaoResponse(Schema):
|
||||
"""
|
||||
|
||||
sugestao: Optional[str]
|
||||
|
||||
class TipoDiarioSchema(ModelSchema):
|
||||
class Config:
|
||||
model = TipoDiarioOficial
|
||||
model_fields = ["id", "nome"]
|
||||
|
||||
class DiarioOficialIn(Schema):
|
||||
"""Schema para criação de Diário Oficial"""
|
||||
data: date
|
||||
numero: str
|
||||
tipo_id: Optional[int] = None
|
||||
link: Optional[str] = None
|
||||
arquivo: Optional[UploadedFile] = None # Adicionando o campo de arquivo
|
||||
|
||||
class Config:
|
||||
# Configuração adicional para o Swagger UI
|
||||
json_schema_extra = {
|
||||
"example": {
|
||||
"data": "2023-12-01",
|
||||
"numero": "1234/2023",
|
||||
}
|
||||
}
|
||||
|
||||
class DiarioOficialOut(Schema):
|
||||
"""Schema para retorno de Diário Oficial (com detalhes completos)"""
|
||||
id: int
|
||||
data: str # Será formatado como ISO (YYYY-MM-DD)
|
||||
numero: str
|
||||
link: Optional[str]
|
||||
tipo: Optional[TipoDiarioSchema]
|
||||
total_paginas: int
|
||||
|
||||
@staticmethod
|
||||
def resolve_data(obj):
|
||||
return obj.data.isoformat()
|
||||
|
||||
@staticmethod
|
||||
def resolve_total_paginas(obj):
|
||||
return obj.paginas.count()
|
||||
|
||||
class DiarioOficialUpdate(Schema):
|
||||
"""Schema para atualização de Diário Oficial"""
|
||||
data: Optional[date] = None
|
||||
numero: Optional[str] = None
|
||||
tipo_id: Optional[int] = None
|
||||
link: Optional[str] = None
|
||||
|
||||
class DiarioListagem(Schema):
|
||||
"""Schema simplificado para listagem de Diários"""
|
||||
id: int
|
||||
data: str
|
||||
numero: str
|
||||
tipo_nome: Optional[str]
|
||||
|
||||
@staticmethod
|
||||
def resolve_data(obj):
|
||||
return obj.data.isoformat()
|
||||
|
||||
@staticmethod
|
||||
def resolve_tipo_nome(obj):
|
||||
return obj.tipo.nome if obj.tipo else None
|
||||
Reference in New Issue
Block a user