@@ -1,7 +1,10 @@
|
||||
package ru.soune.nocopy.repository;
|
||||
|
||||
import jakarta.validation.constraints.Size;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import ru.soune.nocopy.entity.tarif.TariffInfo;
|
||||
@@ -10,12 +13,17 @@ import ru.soune.nocopy.entity.user.User;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface UserRepository extends JpaRepository<User, Long> {
|
||||
public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> {
|
||||
User findByEmail(String email);
|
||||
|
||||
boolean existsByEmail(String email);
|
||||
|
||||
boolean existsByPhone(@Size(min = 11, max = 14) String phone);
|
||||
|
||||
List<User> findByCompanyId(String companyId);
|
||||
|
||||
long countByCompanyId(String companyId);
|
||||
|
||||
User findByPersonalTariffInfo(TariffInfo tariffInfo);
|
||||
|
||||
@Query("SELECT COUNT(u.Id) FROM User u")
|
||||
@@ -48,4 +56,7 @@ public interface UserRepository extends JpaRepository<User, Long> {
|
||||
|
||||
@Query("SELECT u.email FROM User u WHERE u.company.id = :company")
|
||||
List<String> emailsByCompany(@Param("company") String company);
|
||||
|
||||
@Query("SELECT u FROM User u LEFT JOIN u.personalTariffInfo t")
|
||||
Page<User> findAllWithTariff(Pageable pageable);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user