package de.oaa.xxx.aufgaben.repository;

import de.oaa.xxx.aufgaben.entity.AufgabenGruppeEntity;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.UUID;

public interface AufgabenGruppeRepository extends JpaRepository<AufgabenGruppeEntity, UUID> {

    @Query("select age from AufgabenGruppeEntity age where age.userId = :userId")
    List<AufgabenGruppeEntity> findByUserId(@Param("userId") UUID userId);

    @Query("select age from AufgabenGruppeEntity age where (age.privateGruppe = false or age.userId = :userId) and (:search is null or age.name like :search)")
    List<AufgabenGruppeEntity> listWithUserAndSearch(@Param("userId") UUID userId, @Param("search") String search, PageRequest pageable);

    @Query("select age from AufgabenGruppeEntity age where age.privateGruppe = false and (:search is null or age.name like :search)")
    List<AufgabenGruppeEntity> listPublicWithSearch(@Param("search") String search, PageRequest pageable);
}
