package com.zioinfo.kintex.cms;

import com.zioinfo.kintex.cms.dto.CmsContentDto;
import com.zioinfo.kintex.common.ApiResponse;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * M17 공개 콘텐츠 조회 API — 무인증(공개 홍보 사이트·마이크로사이트용). 게시(published) 상태만 노출.
 * 조회 시 예약 시각 도달분을 자동 게시 처리한다(지연 스윕). 운영 필드(저자·예약·플래그)는 제외.
 * <ul>
 *   <li>GET /api/public/cms/{type}?eventId=&limit= — type: PAGE|POST|NOTICE|BLOCK</li>
 * </ul>
 */
@RestController
@RequestMapping("/api/public/cms")
public class PublicCmsController {

    private final CmsService service;

    public PublicCmsController(CmsService service) {
        this.service = service;
    }

    @GetMapping("/{type}")
    public ApiResponse<List<CmsContentDto>> byType(@PathVariable String type,
                                                   @RequestParam(required = false) String eventId,
                                                   @RequestParam(defaultValue = "50") int limit) {
        return ApiResponse.ok(service.publicByType(type, eventId, limit));
    }
}
