package dev.awesomedev.mirim.web;

import dev.awesomedev.mirim.repository.ChecklistItemRepository;
import dev.awesomedev.mirim.web.dto.ChecklistItemResponse;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 이 파일이 하는 일:
 * 주차별 체크리스트 항목 조회 API를 제공하는 컨트롤러다.
 */
@RestController
@RequestMapping("/api/checklist")
public class ChecklistController {

    private final ChecklistItemRepository checklistItemRepository;

    public ChecklistController(ChecklistItemRepository checklistItemRepository) {
        this.checklistItemRepository = checklistItemRepository;
    }

    /** GET /api/checklist?week=N — 해당 주차의 체크리스트 항목 목록 */
    @GetMapping
    public List<ChecklistItemResponse> list(@RequestParam("week") Integer week) {
        return checklistItemRepository.findByWeekOrderBySortOrderAsc(week).stream()
                .map(ChecklistItemResponse::from)
                .toList();
    }
}
