package io.gmss.fiscad.repositories.decoupage;

import io.gmss.fiscad.entities.decoupage.Secteur;
import io.gmss.fiscad.paylaods.response.SecteurEnqResponse;
import io.gmss.fiscad.paylaods.response.StructureEnqResponse;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

public interface SecteurRepository extends JpaRepository<Secteur, Long> {
    List<Secteur> findAllByStructure_Id(Long structureId);

    @Query(value = """
            select
                st.id,
                st.code,
                st.nom,
                s.id as structureId,
                count(distinct e.id) as nombreEnquete
            from structure s
                     inner join commune c on c.id=s.commune_id
                     inner join bloc b on b.structure_id=s.id
                     inner join secteur st on st.id=b.secteur_id
                     left join enquete e on e.bloc_id=b.id
            group by  st.id,st.code,st.nom,s.id;
           """, nativeQuery = true)
    List<SecteurEnqResponse> getAdminSecteurEnqResponse();


    @Query(value = """
          select
                st.id,
                st.code,
                st.nom,
                s.id as structureId,
                count(distinct e.id) as nombreEnquete
            from structure s
                     inner join commune c on c.id=s.commune_id
                     inner join bloc b on b.structure_id=s.id
                     inner join secteur st on st.id=b.secteur_id
                     left join enquete e on e.bloc_id=b.id
            where s.id=?1 and st.id=?2
            group by  st.id,st.code,st.nom,s.id;;
           """, nativeQuery = true)
    List<SecteurEnqResponse> getSecteurEnqResponse(Long structure_id , Long secteurId);
}