77 lines
3.1 KiB
Python
77 lines
3.1 KiB
Python
def format_itens_equipamentos(data):
|
|
"""
|
|
Formata os dados dos itens de equipamentos em um formato específico.
|
|
Retorna o formato:
|
|
[
|
|
{
|
|
"equipamento_nome": "string",
|
|
"tipo_equipamento_nome": "string",
|
|
"setor_nome": "string",
|
|
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
"itens": [
|
|
{
|
|
"itens_equipamentos_ns": "string",
|
|
"itens_equipamentos_patrimonio": "string",
|
|
"itens_equipamentos_data_compra": "2024-11-15",
|
|
"itens_equipamentos_prazo_garantia": "2024-11-15",
|
|
"itens_equipamentos_voltagem": "0",
|
|
"itens_equipamentos_valor_aquisicao": 1,
|
|
"itens_equipamentos_rfid_uid": "stringst",
|
|
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
"itens_equipamentos_manutencao": true/false,
|
|
}
|
|
]
|
|
}
|
|
]
|
|
"""
|
|
formatted_response = []
|
|
|
|
# Mapeia os dados em uma estrutura agrupada
|
|
for item in data:
|
|
equipamento = item.relacao_equipamento
|
|
tipo_equipamento = equipamento.relacao_tipo_equipamento
|
|
setor = tipo_equipamento.relacao_setor
|
|
|
|
# Procura se já existe uma entrada para o equipamento
|
|
equipamento_entry = next(
|
|
(entry for entry in formatted_response if entry["equipamento_uuid"] == equipamento.uuid),
|
|
None
|
|
)
|
|
|
|
# Cria uma nova entrada caso não exista
|
|
if not equipamento_entry:
|
|
equipamento_entry = {
|
|
"equipamento_nome": equipamento.equipamento_nome,
|
|
"equipamento_uuid": equipamento.uuid,
|
|
"equipamento_fk_tipo_equipamento": equipamento.fk_tipo_equipamento_uuid,
|
|
"tipo_equipamento_nome": tipo_equipamento.tipo_equipamento_nome,
|
|
"tipo_equipamento_uuid": tipo_equipamento.uuid,
|
|
"tipo_equipamento_fk_setor": tipo_equipamento.fk_setor_uuid,
|
|
"setor_nome": setor.setor_nome,
|
|
"setor_uuid": setor.uuid,
|
|
"itens": []
|
|
}
|
|
formatted_response.append(equipamento_entry)
|
|
|
|
# Adiciona o item à lista de itens do equipamento
|
|
equipamento_entry["itens"].append({
|
|
"itens_equipamentos_ns": item.itens_equipamentos_ns,
|
|
"itens_equipamentos_patrimonio": item.itens_equipamentos_patrimonio,
|
|
"itens_equipamentos_data_compra": item.itens_equipamentos_data_compra,
|
|
"itens_equipamentos_prazo_garantia": item.itens_equipamentos_prazo_garantia,
|
|
"itens_equipamentos_voltagem": item.itens_equipamentos_voltagem,
|
|
"itens_equipamentos_valor_aquisicao": item.itens_equipamentos_valor_aquisicao,
|
|
"itens_equipamentos_rfid_uid": item.itens_equipamentos_rfid_uid,
|
|
"itens_equipamentos_manutencao": item.itens_equipamentos_manutencao,
|
|
"uuid": item.uuid
|
|
})
|
|
|
|
return formatted_response
|
|
|
|
|
|
# Dicionário de mapeamento para os formatadores
|
|
formatters_map = {
|
|
"itens_equipamentos": format_itens_equipamentos,
|
|
# Adicione outros formatadores aqui conforme necessário
|
|
}
|