from sqlalchemy.orm import Session from . import models, dto class GBultoService: """ Service layer for GBultos. """ @staticmethod def get_bulto_by_code(db: Session, code: str): return db.query(models.Package).filter(models.Package.CODE == code).first() @staticmethod def create_gbulto(db: Session, gbulto_data: dto.GBultoCreateDTO): new_gbulto = models.Package(**gbulto_data.dict()) db.add(new_gbulto) db.commit() db.refresh(new_gbulto) return new_gbulto @staticmethod def update_bulto(db: Session, code: str, bulto_data: dto.GBultoUpdateDTO): bulto = GBultoService.get_bulto_by_code(db, code) if bulto: for key, value in bulto_data.dict(exclude_unset=True).items(): setattr(bulto, key, value) db.commit() db.refresh(bulto) return bulto @staticmethod def delete_bulto(db: Session, code: str): bulto = GBultoService.get_bulto_by_code(db, code) if bulto: db.delete(bulto) db.commit() return bulto