diff --git a/backend/api/v1/modules/a76/aduanal/dto.py b/backend/api/v1/modules/a76/aduanal/dto.py index f4574fb1..5bf648c5 100644 --- a/backend/api/v1/modules/a76/aduanal/dto.py +++ b/backend/api/v1/modules/a76/aduanal/dto.py @@ -23,7 +23,7 @@ class CustomsBrokerDTO(BaseModel): company_id: str class Config: - orm_mode = True + from_attributes = True class CustomsBrokerVUCreateDTO(BaseModel): @@ -48,7 +48,7 @@ class CustomsBrokerVUCreateDTO(BaseModel): doda_xml_files_path: Optional[str] class Config: - orm_mode = True + from_attributes = True class CustomsBrokerPersonnelDTO(BaseModel): @@ -65,4 +65,4 @@ class CustomsBrokerPersonnelDTO(BaseModel): email: Optional[str] class Config: - orm_mode = True \ No newline at end of file + from_attributes = True \ No newline at end of file diff --git a/backend/api/v1/modules/a76/aduanal/routes.py b/backend/api/v1/modules/a76/aduanal/routes.py index d4493cd2..aa51fa72 100644 --- a/backend/api/v1/modules/a76/aduanal/routes.py +++ b/backend/api/v1/modules/a76/aduanal/routes.py @@ -1,37 +1,37 @@ from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from . import services, dto -from core.database import get_db +from core.database import get_core_db router = APIRouter() @router.get("/customs-broker/{broker_key}", response_model=dto.CustomsBrokerDTO) -def get_customs_broker(broker_key: str, db: Session = Depends(get_db)): +def get_customs_broker(broker_key: str, db: Session = Depends(get_core_db)): broker = services.CustomsBrokerService.get_by_broker_key(db, broker_key) if not broker: raise HTTPException(status_code=404, detail="Customs Broker not found") return broker @router.post("/customs-broker", response_model=dto.CustomsBrokerDTO) -def create_customs_broker(broker_data: dto.CustomsBrokerDTO, db: Session = Depends(get_db)): +def create_customs_broker(broker_data: dto.CustomsBrokerDTO, db: Session = Depends(get_core_db)): return services.CustomsBrokerService.create_customs_broker(db, broker_data) @router.delete("/customs-broker/{broker_key}", response_model=dto.CustomsBrokerDTO) -def delete_customs_broker(broker_key: str, db: Session = Depends(get_db)): +def delete_customs_broker(broker_key: str, db: Session = Depends(get_core_db)): broker = services.CustomsBrokerService.delete_customs_broker(db, broker_key) if not broker: raise HTTPException(status_code=404, detail="Customs Broker not found") return broker @router.put("/customs-broker-vu/{broker_key}", response_model=dto.CustomsBrokerVUCreateDTO) -def update_customs_broker_vu(broker_key: str, vu_data: dto.CustomsBrokerVUCreateDTO, db: Session = Depends(get_db)): +def update_customs_broker_vu(broker_key: str, vu_data: dto.CustomsBrokerVUCreateDTO, db: Session = Depends(get_core_db)): updated_vu = services.CustomsBrokerVUService.update_vu(db, broker_key, vu_data) if not updated_vu: raise HTTPException(status_code=404, detail="Customs Broker VU not found") return updated_vu @router.put("/customs-broker-personnel/{broker_key}/{line}", response_model=dto.CustomsBrokerPersonnelDTO) -def update_customs_broker_personnel(broker_key: str, line: int, personnel_data: dto.CustomsBrokerPersonnelDTO, db: Session = Depends(get_db)): +def update_customs_broker_personnel(broker_key: str, line: int, personnel_data: dto.CustomsBrokerPersonnelDTO, db: Session = Depends(get_core_db)): updated_personnel = services.CustomsBrokerPersonnelService.update_personnel(db, broker_key, line, personnel_data) if not updated_personnel: raise HTTPException(status_code=404, detail="Customs Broker Personnel not found") diff --git a/backend/api/v1/modules/a76/drivers/dto.py b/backend/api/v1/modules/a76/drivers/dto.py index 1a9f81c7..741398b5 100644 --- a/backend/api/v1/modules/a76/drivers/dto.py +++ b/backend/api/v1/modules/a76/drivers/dto.py @@ -34,4 +34,4 @@ class DriverCreateDTO(DriverBaseDTO): class DriverResponseDTO(DriverBaseDTO): class Config: - orm_mode = True \ No newline at end of file + from_attributes = True \ No newline at end of file diff --git a/backend/api/v1/modules/a76/drivers/models.py b/backend/api/v1/modules/a76/drivers/models.py index fbdd42eb..82d65029 100644 --- a/backend/api/v1/modules/a76/drivers/models.py +++ b/backend/api/v1/modules/a76/drivers/models.py @@ -29,5 +29,5 @@ class Driver(Base): badge_number = Column(String(20), nullable=True) class_type = Column(String(1), nullable=True) unique_badge_number = Column(String(100), nullable=True) - company_id = Column(String, ForeignKey("a76.company.id"), nullable=False) - tenant_id = Column(String, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file + company_id = Column(Integer, ForeignKey("a76.company.id"), nullable=False) + tenant_id = Column(Integer, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/router.py b/backend/api/v1/modules/a76/router.py index b35d2c8f..1d17e615 100644 --- a/backend/api/v1/modules/a76/router.py +++ b/backend/api/v1/modules/a76/router.py @@ -21,10 +21,7 @@ from .seal.routes import router as seal_router from .fraction_rule_octave.routes import router as fraction_rule_octave_router from .country_rule_oct.routes import router as country_rule_oct_router from .exchange_rate.routes import router as exchange_rate_router -from .transport_types.routes import router as transport_types_router from .trailers.routes import router as trailers_router -from .trailer_types.routes import router as trailer_types_router -from .transport_modes.routes import router as transport_modes_router from .aduanal.routes import router as customs_broker_router from .drivers.routes import router as drivers_router from .transporters.routes import router as transporters_router @@ -57,10 +54,7 @@ router.include_router( country_rule_oct_router, prefix="/a76", tags=["a76 / CountryRuleOct"] ) router.include_router(exchange_rate_router, prefix="/a76", tags=["a76 / ExchangeRate"]) -router.include_router(transport_types_router, prefix="/a76", tags=["a76 / TransportTypes"]) router.include_router(trailers_router, prefix="/a76", tags=["a76 / Trailers"]) -router.include_router(trailer_types_router, prefix="/a76", tags=["a76 / TrailerTypes"]) -router.include_router(transport_modes_router, prefix="/a76", tags=["a76 / TransportModes"]) router.include_router(customs_broker_router, prefix="/a76", tags=["a76 / CustomsBroker"]) router.include_router(drivers_router, prefix="/a76", tags=["a76 / Drivers"]) router.include_router(transporters_router, prefix="/a76", tags=["a76 / Transporters"]) diff --git a/backend/api/v1/modules/a76/tenants/models.py b/backend/api/v1/modules/a76/tenants/models.py index 5f38c36b..adf88dff 100644 --- a/backend/api/v1/modules/a76/tenants/models.py +++ b/backend/api/v1/modules/a76/tenants/models.py @@ -28,7 +28,7 @@ class Tenant(Base): """ __tablename__ = "tenants" - __table_args__ = {"schema": "a76"} + __table_args__ = {"schema": "a76", "extend_existing": True} id = Column(Integer, primary_key=True, index=True) name = Column(String(255), nullable=False, index=True) diff --git a/backend/api/v1/modules/a76/trailers/dto.py b/backend/api/v1/modules/a76/trailers/dto.py index 313713a5..b35316a3 100644 --- a/backend/api/v1/modules/a76/trailers/dto.py +++ b/backend/api/v1/modules/a76/trailers/dto.py @@ -19,4 +19,4 @@ class TrailerCreateDTO(TrailerBaseDTO): class TrailerResponseDTO(TrailerBaseDTO): class Config: - orm_mode = True \ No newline at end of file + from_attributes = True \ No newline at end of file diff --git a/backend/api/v1/modules/a76/trailers/models.py b/backend/api/v1/modules/a76/trailers/models.py index c41454f9..e052d0ad 100644 --- a/backend/api/v1/modules/a76/trailers/models.py +++ b/backend/api/v1/modules/a76/trailers/models.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, String, ForeignKey +from sqlalchemy import Column, Integer, String, ForeignKey from core.database import Base class Trailer(Base): @@ -14,5 +14,5 @@ class Trailer(Base): state = Column(String(30), nullable=True) country = Column(String(3), nullable=True) container_key = Column(String(3), nullable=True) - company_id = Column(String, ForeignKey("a76.company.id"), nullable=False) - tenant_id = Column(String, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file + company_id = Column(Integer, ForeignKey("a76.company.id"), nullable=False) + tenant_id = Column(Integer, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/trailers/routes.py b/backend/api/v1/modules/a76/trailers/routes.py index 9f0218bc..e1da08ff 100644 --- a/backend/api/v1/modules/a76/trailers/routes.py +++ b/backend/api/v1/modules/a76/trailers/routes.py @@ -1,23 +1,23 @@ from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from . import services, dto -from core.database import get_db +from core.database import get_core_db router = APIRouter() -@router.get("/trailers/{trailer_number}", response_model=dto.TrailerDTO) -def get_trailer(trailer_number: str, db: Session = Depends(get_db)): +@router.get("/trailers/{trailer_number}", response_model=dto.TrailerResponseDTO) +def get_trailer(trailer_number: str, db: Session = Depends(get_core_db)): trailer = services.TrailerService.get_trailer_by_number(db, trailer_number) if not trailer: raise HTTPException(status_code=404, detail="Trailer not found") return trailer -@router.post("/trailers", response_model=dto.TrailerDTO) -def create_trailer(trailer_data: dto.TrailerCreateDTO, db: Session = Depends(get_db)): +@router.post("/trailers", response_model=dto.TrailerResponseDTO) +def create_trailer(trailer_data: dto.TrailerCreateDTO, db: Session = Depends(get_core_db)): return services.TrailerService.create_trailer(db, trailer_data) -@router.delete("/trailers/{trailer_number}", response_model=dto.TrailerDTO) -def delete_trailer(trailer_number: str, db: Session = Depends(get_db)): +@router.delete("/trailers/{trailer_number}", response_model=dto.TrailerResponseDTO) +def delete_trailer(trailer_number: str, db: Session = Depends(get_core_db)): trailer = services.TrailerService.delete_trailer(db, trailer_number) if not trailer: raise HTTPException(status_code=404, detail="Trailer not found") diff --git a/backend/api/v1/modules/a76/transport_modes/dto.py b/backend/api/v1/modules/a76/transport_modes/dto.py deleted file mode 100644 index 53ffa3bb..00000000 --- a/backend/api/v1/modules/a76/transport_modes/dto.py +++ /dev/null @@ -1,15 +0,0 @@ -from pydantic import BaseModel -from typing import Optional - -class TransportModeBaseDTO(BaseModel): - mode_key: str - mode_description: Optional[str] - company_id: str - tenant_id: str - -class TransportModeCreateDTO(TransportModeBaseDTO): - pass - -class TransportModeResponseDTO(TransportModeBaseDTO): - class Config: - orm_mode = True \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transport_modes/models.py b/backend/api/v1/modules/a76/transport_modes/models.py deleted file mode 100644 index 77e8ce4c..00000000 --- a/backend/api/v1/modules/a76/transport_modes/models.py +++ /dev/null @@ -1,11 +0,0 @@ -from sqlalchemy import Column, String, ForeignKey -from core.database import Base - -class TransportMode(Base): - __tablename__ = "transport_mode" - __table_args__ = {"schema": "a76"} - - mode_key = Column(String(3), primary_key=True, nullable=False) - mode_description = Column(String(30), nullable=True) - company_id = Column(String, ForeignKey("a76.company.id"), nullable=False) - tenant_id = Column(String, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transport_modes/routes.py b/backend/api/v1/modules/a76/transport_modes/routes.py deleted file mode 100644 index 1526611f..00000000 --- a/backend/api/v1/modules/a76/transport_modes/routes.py +++ /dev/null @@ -1,24 +0,0 @@ -from fastapi import APIRouter, Depends, HTTPException -from sqlalchemy.orm import Session -from . import services, dto -from core.database import get_db - -router = APIRouter() - -@router.get("/transport-modes/{mode_key}", response_model=dto.TransportModeDTO) -def get_transport_mode(mode_key: str, db: Session = Depends(get_db)): - transport_mode = services.TransportModeService.get_transport_mode_by_key(db, mode_key) - if not transport_mode: - raise HTTPException(status_code=404, detail="Transport mode not found") - return transport_mode - -@router.post("/transport-modes", response_model=dto.TransportModeDTO) -def create_transport_mode(transport_mode_data: dto.TransportModeCreateDTO, db: Session = Depends(get_db)): - return services.TransportModeService.create_transport_mode(db, transport_mode_data) - -@router.delete("/transport-modes/{mode_key}", response_model=dto.TransportModeDTO) -def delete_transport_mode(mode_key: str, db: Session = Depends(get_db)): - transport_mode = services.TransportModeService.delete_transport_mode(db, mode_key) - if not transport_mode: - raise HTTPException(status_code=404, detail="Transport mode not found") - return transport_mode \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transport_modes/services.py b/backend/api/v1/modules/a76/transport_modes/services.py deleted file mode 100644 index e5650e6e..00000000 --- a/backend/api/v1/modules/a76/transport_modes/services.py +++ /dev/null @@ -1,23 +0,0 @@ -from sqlalchemy.orm import Session -from . import models, dto - -class TransportModeService: - @staticmethod - def get_transport_mode_by_key(db: Session, mode_key: str): - return db.query(models.TransportMode).filter(models.TransportMode.mode_key == mode_key).first() - - @staticmethod - def create_transport_mode(db: Session, transport_mode_data: dto.TransportModeCreateDTO): - new_transport_mode = models.TransportMode(**transport_mode_data.dict()) - db.add(new_transport_mode) - db.commit() - db.refresh(new_transport_mode) - return new_transport_mode - - @staticmethod - def delete_transport_mode(db: Session, mode_key: str): - transport_mode = TransportModeService.get_transport_mode_by_key(db, mode_key) - if transport_mode: - db.delete(transport_mode) - db.commit() - return transport_mode \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transport_types/dto.py b/backend/api/v1/modules/a76/transport_types/dto.py deleted file mode 100644 index 4a794759..00000000 --- a/backend/api/v1/modules/a76/transport_types/dto.py +++ /dev/null @@ -1,15 +0,0 @@ -from pydantic import BaseModel -from typing import Optional - -class TransportTypeBaseDTO(BaseModel): - transport_type_key: str - description: Optional[str] - company_id: str - tenant_id: str - -class TransportTypeCreateDTO(TransportTypeBaseDTO): - pass - -class TransportTypeResponseDTO(TransportTypeBaseDTO): - class Config: - orm_mode = True \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transport_types/models.py b/backend/api/v1/modules/a76/transport_types/models.py deleted file mode 100644 index ab706632..00000000 --- a/backend/api/v1/modules/a76/transport_types/models.py +++ /dev/null @@ -1,11 +0,0 @@ -from sqlalchemy import Column, String, ForeignKey -from core.database import Base - -class TransportType(Base): - __tablename__ = "transport_type" - __table_args__ = {"schema": "a76"} - - transport_type_key = Column(String(2), primary_key=True, nullable=False) - description = Column(String(100), nullable=True) - company_id = Column(String, ForeignKey("a76.company.id"), nullable=False) - tenant_id = Column(String, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transport_types/routes.py b/backend/api/v1/modules/a76/transport_types/routes.py deleted file mode 100644 index 5ac1a15e..00000000 --- a/backend/api/v1/modules/a76/transport_types/routes.py +++ /dev/null @@ -1,46 +0,0 @@ -from fastapi import APIRouter, Depends, HTTPException, status -from sqlalchemy.orm import Session -from typing import List - -from core.database import get_core_db -from core.security import get_current_user -from .dto import TransportTypeCreateDTO, TransportTypeResponseDTO -from .services import TransportTypeService - -router = APIRouter(prefix="/transport-types", tags=["TransportTypes"]) - -@router.get("/", response_model=List[TransportTypeResponseDTO]) -async def list_transport_types( - db: Session = Depends(get_core_db), - current_user: dict = Depends(get_current_user) -): - return db.query(TransportTypeService).all() - -@router.get("/{transport_type_key}", response_model=TransportTypeResponseDTO) -async def read_transport_type( - transport_type_key: str, - db: Session = Depends(get_core_db), - current_user: dict = Depends(get_current_user) -): - transport_type = TransportTypeService.get_transport_type_by_key(db, transport_type_key) - if not transport_type: - raise HTTPException(status_code=404, detail="TransportType not found") - return transport_type - -@router.post("/", response_model=TransportTypeResponseDTO, status_code=status.HTTP_201_CREATED) -async def create_transport_type( - transport_type_data: TransportTypeCreateDTO, - db: Session = Depends(get_core_db), - current_user: dict = Depends(get_current_user) -): - return TransportTypeService.create_transport_type(db, transport_type_data) - -@router.delete("/{transport_type_key}", status_code=status.HTTP_204_NO_CONTENT) -async def delete_transport_type( - transport_type_key: str, - db: Session = Depends(get_core_db), - current_user: dict = Depends(get_current_user) -): - transport_type = TransportTypeService.delete_transport_type(db, transport_type_key) - if not transport_type: - raise HTTPException(status_code=404, detail="TransportType not found") \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transport_types/services.py b/backend/api/v1/modules/a76/transport_types/services.py deleted file mode 100644 index b7f40bae..00000000 --- a/backend/api/v1/modules/a76/transport_types/services.py +++ /dev/null @@ -1,23 +0,0 @@ -from sqlalchemy.orm import Session -from . import models, dto - -class TransportTypeService: - @staticmethod - def get_transport_type_by_key(db: Session, transport_type_key: str): - return db.query(models.TransportType).filter(models.TransportType.transport_type_key == transport_type_key).first() - - @staticmethod - def create_transport_type(db: Session, transport_type_data: dto.TransportTypeCreateDTO): - new_transport_type = models.TransportType(**transport_type_data.dict()) - db.add(new_transport_type) - db.commit() - db.refresh(new_transport_type) - return new_transport_type - - @staticmethod - def delete_transport_type(db: Session, transport_type_key: str): - transport_type = TransportTypeService.get_transport_type_by_key(db, transport_type_key) - if transport_type: - db.delete(transport_type) - db.commit() - return transport_type \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transporters/dto.py b/backend/api/v1/modules/a76/transporters/dto.py index 4c6e644d..c62596c5 100644 --- a/backend/api/v1/modules/a76/transporters/dto.py +++ b/backend/api/v1/modules/a76/transporters/dto.py @@ -29,4 +29,4 @@ class TransporterCreateDTO(TransporterBaseDTO): class TransporterResponseDTO(TransporterBaseDTO): class Config: - orm_mode = True \ No newline at end of file + from_attributes = True \ No newline at end of file diff --git a/backend/api/v1/modules/a76/transporters/models.py b/backend/api/v1/modules/a76/transporters/models.py index f43d6830..2ad4aff0 100644 --- a/backend/api/v1/modules/a76/transporters/models.py +++ b/backend/api/v1/modules/a76/transporters/models.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, String, ForeignKey +from sqlalchemy import Column, Integer, String, ForeignKey from core.database import Base class Transporter(Base): @@ -24,5 +24,5 @@ class Transporter(Base): ftp_password = Column(String(100), nullable=True) ftp_directory = Column(String(1000), nullable=True) filler_code = Column(String(4), nullable=True) - company_id = Column(String, ForeignKey("a76.company.id"), nullable=False) - tenant_id = Column(String, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file + company_id = Column(Integer, ForeignKey("a76.company.id"), nullable=False) + tenant_id = Column(Integer, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/user_tenant/models.py b/backend/api/v1/modules/a76/user_tenant/models.py index fbbee61d..feb5ab68 100644 --- a/backend/api/v1/modules/a76/user_tenant/models.py +++ b/backend/api/v1/modules/a76/user_tenant/models.py @@ -35,7 +35,7 @@ class UserTenant(Base): UniqueConstraint( "keycloak_user_id", "tenant_id", "company_id", name="uq_user_tenant" ), - {"schema": "a76"}, + {"schema": "a76", "extend_existing": True}, ) # Primary Key diff --git a/backend/api/v1/modules/a76/vehicles/dto.py b/backend/api/v1/modules/a76/vehicles/dto.py index afecc2f0..2ab09888 100644 --- a/backend/api/v1/modules/a76/vehicles/dto.py +++ b/backend/api/v1/modules/a76/vehicles/dto.py @@ -36,4 +36,4 @@ class VehicleCreateDTO(VehicleBaseDTO): class VehicleResponseDTO(VehicleBaseDTO): class Config: - orm_mode = True \ No newline at end of file + from_attributes = True \ No newline at end of file diff --git a/backend/api/v1/modules/a76/vehicles/models.py b/backend/api/v1/modules/a76/vehicles/models.py index f20eb42a..6b50391e 100644 --- a/backend/api/v1/modules/a76/vehicles/models.py +++ b/backend/api/v1/modules/a76/vehicles/models.py @@ -31,5 +31,5 @@ class Vehicle(Base): sct_permission = Column(String(40), nullable=True) color = Column(String(20), nullable=True) container_key = Column(String(3), nullable=True) - company_id = Column(String, ForeignKey("a76.company.id"), nullable=False) - tenant_id = Column(String, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file + company_id = Column(Integer, ForeignKey("a76.company.id"), nullable=False) + tenant_id = Column(Integer, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file diff --git a/backend/api/v1/modules/public/reference_data/router.py b/backend/api/v1/modules/public/reference_data/router.py index 22208602..1f182b5b 100644 --- a/backend/api/v1/modules/public/reference_data/router.py +++ b/backend/api/v1/modules/public/reference_data/router.py @@ -22,6 +22,7 @@ from .invoice_types.routes import router as invoice_types_router from .code_pedimento_regimens.routes import router as code_pedimento_regimens_router from .pedimento_regimens.routes import router as pedimento_regimens_router from .incoterms.routes import router as incoterms_router +from .trailer_types.routes import router as trailer_types_router # Router principal router = APIRouter() @@ -60,6 +61,11 @@ router.include_router( router.include_router( states_router, prefix="/refrence_data", tags=["public / refrence_data / states"] ) +router.include_router( + trailer_types_router, + prefix="/refrence_data", + tags=["public / refrence_data / trailer_types"], +) router.include_router( transport_types_router, prefix="/refrence_data", diff --git a/backend/api/v1/modules/a76/trailer_types/dto.py b/backend/api/v1/modules/public/reference_data/trailer_types/dto.py similarity index 91% rename from backend/api/v1/modules/a76/trailer_types/dto.py rename to backend/api/v1/modules/public/reference_data/trailer_types/dto.py index 9318cb15..322365db 100644 --- a/backend/api/v1/modules/a76/trailer_types/dto.py +++ b/backend/api/v1/modules/public/reference_data/trailer_types/dto.py @@ -12,4 +12,4 @@ class TrailerTypeCreateDTO(TrailerTypeBaseDTO): class TrailerTypeResponseDTO(TrailerTypeBaseDTO): class Config: - orm_mode = True \ No newline at end of file + from_attributes = True \ No newline at end of file diff --git a/backend/api/v1/modules/a76/trailer_types/models.py b/backend/api/v1/modules/public/reference_data/trailer_types/models.py similarity index 54% rename from backend/api/v1/modules/a76/trailer_types/models.py rename to backend/api/v1/modules/public/reference_data/trailer_types/models.py index 1f115fea..5db5078a 100644 --- a/backend/api/v1/modules/a76/trailer_types/models.py +++ b/backend/api/v1/modules/public/reference_data/trailer_types/models.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, String, ForeignKey +from sqlalchemy import Column, Integer, String, ForeignKey from core.database import Base class TrailerType(Base): @@ -7,5 +7,5 @@ class TrailerType(Base): trailer_type_key = Column(String(2), primary_key=True, nullable=False) description = Column(String(100), nullable=True) - company_id = Column(String, ForeignKey("a76.company.id"), nullable=False) - tenant_id = Column(String, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file + company_id = Column(Integer, ForeignKey("a76.company.id"), nullable=False) + tenant_id = Column(Integer, ForeignKey("a76.tenants.id"), nullable=False) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/trailer_types/routes.py b/backend/api/v1/modules/public/reference_data/trailer_types/routes.py similarity index 79% rename from backend/api/v1/modules/a76/trailer_types/routes.py rename to backend/api/v1/modules/public/reference_data/trailer_types/routes.py index d930f2fd..32ffdc7d 100644 --- a/backend/api/v1/modules/a76/trailer_types/routes.py +++ b/backend/api/v1/modules/public/reference_data/trailer_types/routes.py @@ -1,23 +1,23 @@ from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from . import services, dto -from core.database import get_db +from core.database import get_core_db router = APIRouter() -@router.get("/trailer-types/{trailer_type_key}", response_model=dto.TrailerTypeDTO) -def get_trailer_type(trailer_type_key: str, db: Session = Depends(get_db)): +@router.get("/trailer-types/{trailer_type_key}", response_model=dto.TrailerTypeResponseDTO) +def get_trailer_type(trailer_type_key: str, db: Session = Depends(get_core_db)): trailer_type = services.TrailerTypeService.get_trailer_type_by_key(db, trailer_type_key) if not trailer_type: raise HTTPException(status_code=404, detail="Trailer type not found") return trailer_type -@router.post("/trailer-types", response_model=dto.TrailerTypeDTO) -def create_trailer_type(trailer_type_data: dto.TrailerTypeCreateDTO, db: Session = Depends(get_db)): +@router.post("/trailer-types", response_model=dto.TrailerTypeResponseDTO) +def create_trailer_type(trailer_type_data: dto.TrailerTypeCreateDTO, db: Session = Depends(get_core_db)): return services.TrailerTypeService.create_trailer_type(db, trailer_type_data) -@router.delete("/trailer-types/{trailer_type_key}", response_model=dto.TrailerTypeDTO) -def delete_trailer_type(trailer_type_key: str, db: Session = Depends(get_db)): +@router.delete("/trailer-types/{trailer_type_key}", response_model=dto.TrailerTypeResponseDTO) +def delete_trailer_type(trailer_type_key: str, db: Session = Depends(get_core_db)): trailer_type = services.TrailerTypeService.delete_trailer_type(db, trailer_type_key) if not trailer_type: raise HTTPException(status_code=404, detail="Trailer type not found") diff --git a/backend/api/v1/modules/a76/trailer_types/services.py b/backend/api/v1/modules/public/reference_data/trailer_types/services.py similarity index 100% rename from backend/api/v1/modules/a76/trailer_types/services.py rename to backend/api/v1/modules/public/reference_data/trailer_types/services.py diff --git a/backend/core/security.py b/backend/core/security.py index b72b9fca..0a1cc855 100644 --- a/backend/core/security.py +++ b/backend/core/security.py @@ -10,9 +10,7 @@ from typing import Optional, Dict, Any from sqlalchemy.orm import Session from .config import settings import logging -from sqlalchemy.orm import Session from core.database import get_core_db -from api.v1.modules.a76.user_tenant.models import UserTenant logger = logging.getLogger(__name__) @@ -76,22 +74,7 @@ async def get_current_user( current_user: dict = Depends(get_current_user) """ token = credentials.credentials - user_info = verify_token(token) - - # Obtener user_id desde el token - user_id = user_info.get("sub") - if not user_id: - raise HTTPException(status_code=401, detail="User ID not found in token") - - # Consultar la tabla user_tenant para obtener tenant_id y company_id - user_tenant = db.query(UserTenant).filter(UserTenant.keycloak_user_id == user_id).first() - if not user_tenant: - raise HTTPException(status_code=403, detail="User does not have access to any tenant or company") - - # Enriquecer user_info con tenant_id y company_id - user_info["tenant_id"] = user_tenant.tenant_id - user_info["company_id"] = user_tenant.company_id - + user_info = verify_token(token) return user_info