""" Service layer for PedimentoValidation CRUD operations """ from typing import Optional from sqlalchemy.orm import Session from ..dtos.pedimento_validation import ( PedimentoValidationCreate, PedimentoValidationUpdate, ) from ..models.pedimento_validation import PedimentoValidation class PedimentoValidationService: """Service class for PedimentoValidation business logic""" @staticmethod def get_by_pedimento_id( db: Session, pedimento_id: int, tenant_id: int ) -> Optional[PedimentoValidation]: """Get validation by pedimento ID""" return ( db.query(PedimentoValidation) .filter( PedimentoValidation.pedimento_id == pedimento_id, PedimentoValidation.tenant_id == tenant_id, ) .first() ) @staticmethod def create(db: Session, data: PedimentoValidationCreate) -> PedimentoValidation: """Create new validation""" validation = PedimentoValidation(**data.model_dump()) db.add(validation) db.commit() db.refresh(validation) return validation @staticmethod def update( db: Session, pedimento_id: int, tenant_id: int, data: PedimentoValidationUpdate ) -> Optional[PedimentoValidation]: """Update validation""" validation = PedimentoValidationService.get_by_pedimento_id( db, pedimento_id, tenant_id ) if not validation: return None update_data = data.model_dump(exclude_unset=True) for field, value in update_data.items(): setattr(validation, field, value) db.commit() db.refresh(validation) return validation @staticmethod def delete(db: Session, pedimento_id: int, tenant_id: int) -> bool: """Delete validation""" validation = PedimentoValidationService.get_by_pedimento_id( db, pedimento_id, tenant_id ) if not validation: return False db.delete(validation) db.commit() return True