feat: update item response schema and refactor item creation logic for improved payload structure

This commit is contained in:
2026-02-18 11:27:11 -06:00
parent b94d0ac7fb
commit bbd0b7ad90
4 changed files with 15 additions and 33 deletions

View File

@@ -258,7 +258,7 @@ class LineItemUpdate(LineItemBase):
)
class LineItemResponse(BaseModel):
class LineItemResponse(LineItemBase):
"""Schema for single item response"""
id: int

View File

@@ -299,13 +299,6 @@ class ItemService:
if item_data.fa_data and item_data.fa_data.subitem_number is None:
errors.add_required_error(field=f"fa_data.subitem_number")
# Validar apóstrofes en número de parte
if item_data.part_number_id and "'" in str(item_data.part_number_id):
errors.add_error(
field=f"part_number",
message=f"Advertencia: El Número de Parte contiene apóstrofes y serán omitidos",
code="WARNING_APOSTROPHE",
)
# Si hay errores, lanzar excepción ANTES de intentar crear
errors.raise_if_errors("Error al crear el item")
@@ -396,16 +389,6 @@ class ItemService:
db_item.line_number,
)
# Validaciones adicionales específicas del negocio
# Validar apóstrofes en número de parte
if item_data.part_number_id and "'" in str(item_data.part_number_id):
errors.add_error(
field=f"part_number",
message=f"Advertencia: El Número de Parte contiene apóstrofes y serán omitidos",
solution=None,
code="WARNING_APOSTROPHE",
)
# Validar tipo de partida
if hasattr(item_data, "item_type") and item_data.item_type:
@@ -446,14 +429,6 @@ class ItemService:
exclude_unset=True,
)
# Map schema field names to model field names
if "part_number_id" in item_dict:
item_dict["part_number"] = item_dict.pop("part_number_id")
if "component_part_number_id" in item_dict:
item_dict["component_part_number"] = item_dict.pop(
"component_part_number_id"
)
# Update item fields
for key, value in item_dict.items():
setattr(db_item, key, value)