package com.imprimelibros.erp.configuracion.margenes_presupuestos;

import java.util.List;
import java.util.Optional;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.imprimelibros.erp.presupuesto.Presupuesto.TipoEncuadernacion;
import com.imprimelibros.erp.presupuesto.Presupuesto.TipoCubierta;

@Service
@Transactional
public class MargenPresupuestoService {

    private final MargenPresupuestoDao dao;

    public MargenPresupuestoService(MargenPresupuestoDao dao) {
        this.dao = dao;
    }

    public List<MargenPresupuesto> findAll() {
        return dao.findAll();
    }

    public Optional<MargenPresupuesto> findById(Long id) {
        return dao.findById(id);
    }

    public MargenPresupuesto save(MargenPresupuesto entity) {
        return dao.save(entity);
    }

    public void delete(Long id) {
        dao.deleteById(id);
    }
    

    public boolean hasOverlap(TipoEncuadernacion enc, TipoCubierta cub, Integer min, Integer max, Long excludeId) {
        long count = dao.countOverlaps(enc, cub, min, max, excludeId);
        return count > 0;
    }
}
