Newer
Older
job-tracker / src / main / java / com / kpaudel / repository / JobApplicationRepository.java
package com.kpaudel.repository;

import com.kpaudel.model.ApplicationStatus;
import com.kpaudel.model.JobApplication;
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 JobApplicationRepository extends JpaRepository<JobApplication, UUID> {
    List<JobApplication> findByStatus(ApplicationStatus status);

    List<JobApplication> findByCompanyId(UUID companyId);

    @Query("SELECT j FROM JobApplication j WHERE j.user.id = :userId")
    List<JobApplication> findByUserId(@Param("userId") UUID userId);

    @Query("SELECT j FROM JobApplication j WHERE j.user.id = :userId AND j.company.id = :companyId")
    List<JobApplication> findByUserIdAndCompanyId(@Param("userId") UUID userId, @Param("companyId") UUID companyId);

    @Query("SELECT j FROM JobApplication j WHERE j.user.id = :userId AND j.status = :status")
    List<JobApplication> findByUserIdAndStatus(@Param("userId") UUID userId, @Param("status") ApplicationStatus status);
}