package fyloz.trial.ColorRecipesExplorer.services;

import fyloz.trial.ColorRecipesExplorer.dao.CompanyDao;
import fyloz.trial.ColorRecipesExplorer.dao.RecipeDao;
import fyloz.trial.ColorRecipesExplorer.model.Company;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class CompanyService extends GenericService<Company> {

    private RecipeDao recipeDao;    // Utilise le Dao pour éviter une erreur au démarrage, citant une récursion (CompanyService -> RecipeService -> CompanyService -> ...)

    @Autowired
    public CompanyService(CompanyDao companyDao, RecipeDao recipeDao) {
        super(companyDao);
        this.recipeDao = recipeDao;
    }

    /**
     * Vérifie si une bannière est liée à une ou plusieurs recettes en faisant une requête dans la base de données,
     * pour retourner s'il y a des résultats ou non.
     *
     * @return Si la bannière est liée à une ou plusieurs recettes.
     */
    public boolean isLinkedToRecipes(Company company) {
        return !recipeDao.findAllByCompany(company).isEmpty();
    }

    public boolean deleteIfNotLinked(Company company) {
        if (!isLinkedToRecipes(company)) {
            return super.delete(company);
        }

        return false;
    }
}
