from sqlalchemy.orm import Session from . import models, dto """ Service layer for GFracROctava. """ class GFracROctavaService: @staticmethod def get_fraction_by_permission_line(db: Session, permission: str, line: int, fraction: str): return db.query(models.GFracROctava).filter( models.GFracROctava.PERMISSION == permission, models.GFracROctava.LINE == line, models.GFracROctava.FRACTION == fraction ).first() @staticmethod def create_frac(db: Session, frac_data: dto.GFracROctavaCreateDTO): new_frac = models.GFracROctava(**frac_data.dict()) db.add(new_frac) db.commit() db.refresh(new_frac) return new_frac @staticmethod def delete_fraction(db: Session, permission: str, line: int, fraction: str): frac = GFracROctavaService.get_fraction_by_permission_line(db, permission, line, fraction) if frac: db.delete(frac) db.commit() return frac