package dev.awesomedev.mirim.repository;

import dev.awesomedev.mirim.domain.CourseProgress;
import dev.awesomedev.mirim.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;
import java.util.Optional;

/**
 * 이 파일이 하는 일:
 * course_progress 테이블에 대한 DB 접근 창구.
 * 학습 포인트: 메서드 이름 규칙(findBy + 필드명)만 지키면
 * Spring Data JPA가 SQL을 대신 만들어 준다 — SQL 입문 코스의 "JPA와 SQL의 관계" 참고.
 */
public interface CourseProgressRepository extends JpaRepository<CourseProgress, Long> {

    /** 이 사용자의 완료 기록 전부 */
    List<CourseProgress> findByUser(User user);

    /** 이 사용자가 이 코스를 완료했는지 (있으면 완료) */
    Optional<CourseProgress> findByUserAndCourseSlug(User user, String courseSlug);
}
