Se esta trabajando en el formulario de partes y sus relaciones
This commit is contained in:
@@ -3,27 +3,45 @@ from decimal import Decimal
|
||||
from typing import List, Optional
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
# --- DTO DE CREACIÓN ---
|
||||
class PartCreateDTO(BaseModel):
|
||||
client_id: int
|
||||
part_number: str = Field(..., max_length=50)
|
||||
|
||||
# Campos Generales
|
||||
description_spanish: Optional[str] = None
|
||||
description_english: Optional[str] = None
|
||||
part_class: Optional[str] = None
|
||||
unit_of_measure: Optional[str] = "PZ"
|
||||
commercial_part_number: Optional[str] = None
|
||||
country_of_origin: Optional[str] = "MEX"
|
||||
|
||||
# Costos y Pesos
|
||||
unit_cost: Optional[Decimal] = Decimal("0.0")
|
||||
currency_key: Optional[str] = "USD"
|
||||
unit_weight: Optional[Decimal] = Decimal("0.0")
|
||||
weight_type: Optional[str] = "KG"
|
||||
|
||||
# --- LOS QUE FALTABAN Y AHORA SE GUARDARÁN ---
|
||||
added_value: Optional[Decimal] = None
|
||||
part_photo: Optional[str] = None
|
||||
alternate_unit_measure: Optional[str] = None
|
||||
license_code: Optional[str] = None
|
||||
export_code: Optional[str] = None
|
||||
exclusion_symbol: Optional[str] = None
|
||||
|
||||
# Regulatorios
|
||||
fraction: Optional[str] = None
|
||||
us_fraction: Optional[str] = None
|
||||
supplier: Optional[str] = None
|
||||
fda_key: Optional[str] = None
|
||||
fcc_key: Optional[str] = None
|
||||
eccn: Optional[str] = None
|
||||
|
||||
# Estatus
|
||||
is_active: Optional[bool] = True
|
||||
|
||||
# --- DTO DE ACTUALIZACIÓN ---
|
||||
class PartUpdateDTO(BaseModel):
|
||||
description_spanish: Optional[str] = None
|
||||
description_english: Optional[str] = None
|
||||
@@ -31,10 +49,18 @@ class PartUpdateDTO(BaseModel):
|
||||
unit_of_measure: Optional[str] = None
|
||||
commercial_part_number: Optional[str] = None
|
||||
country_of_origin: Optional[str] = None
|
||||
|
||||
unit_cost: Optional[Decimal] = None
|
||||
currency_key: Optional[str] = None
|
||||
unit_weight: Optional[Decimal] = None
|
||||
weight_type: Optional[str] = None
|
||||
added_value: Optional[Decimal] = None
|
||||
part_photo: Optional[str] = None
|
||||
alternate_unit_measure: Optional[str] = None
|
||||
license_code: Optional[str] = None
|
||||
export_code: Optional[str] = None
|
||||
exclusion_symbol: Optional[str] = None
|
||||
|
||||
fraction: Optional[str] = None
|
||||
us_fraction: Optional[str] = None
|
||||
supplier: Optional[str] = None
|
||||
@@ -43,6 +69,7 @@ class PartUpdateDTO(BaseModel):
|
||||
eccn: Optional[str] = None
|
||||
is_active: Optional[bool] = None
|
||||
|
||||
|
||||
class PartResponseDTO(PartCreateDTO):
|
||||
id: int
|
||||
tenant_id: int
|
||||
|
||||
@@ -41,6 +41,7 @@ from .general_catalogs.electronic_notices.routes import router as electronic_not
|
||||
from .transportation.trailers.routes import router as trailers_router
|
||||
from .transportation.transporters.routes import router as transporters_router
|
||||
from .transportation.vehicles.routes import router as vehicles_router
|
||||
from api.v1.modules.public.reference_data.material_types.routes import router as material_types_router
|
||||
|
||||
# Router principal
|
||||
router = APIRouter()
|
||||
@@ -94,3 +95,10 @@ router.include_router(error_catalogs_router, prefix="/a76")
|
||||
router.include_router(doda_router, prefix="/a76")
|
||||
router.include_router(prevalidators_router, prefix="/a76")
|
||||
router.include_router(electronic_notices_router, prefix="/a76")
|
||||
|
||||
# Registrar router de tipos de material públicos
|
||||
router.include_router(
|
||||
material_types_router,
|
||||
prefix="/public/reference-data",
|
||||
tags=["Reference Data"]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user