package com.zioinfo.cms.content;

import lombok.Data;
import java.time.LocalDateTime;

/**
 * 콘텐츠 엔티티 (cms_content) — 페이지/포스트/블록 헤드리스 콘텐츠.
 *
 * <p>blocks 는 헤드리스 블록 배열(JSONB) — Java String 매핑, INSERT 시 {@code #{blocks}::jsonb}.
 * status 는 게시 워크플로우 단계: DRAFT → REVIEW → APPROVED → PUBLISHED (+ARCHIVED).
 */
@Data
public class CmsContent {
    private Long id;
    private String contentType;     // PAGE, POST, BLOCK, PRODUCT_DETAIL
    private String slug;            // URL 식별자(고유)
    private String title;
    private String summary;
    private String blocks;          // JSONB: 헤드리스 블록 배열
    private String locale;          // ko, en ...
    private String status;          // DRAFT, REVIEW, APPROVED, PUBLISHED, ARCHIVED
    private Integer version;        // 현재 버전 번호
    private Long menuId;            // 소속 메뉴/카테고리(선택)
    private String tags;            // 쉼표구분
    private String seoMeta;         // JSONB: SEO 메타(선택)
    private LocalDateTime scheduledAt;   // 예약 게시 시각
    private LocalDateTime publishedAt;
    private String createdBy;
    private String updatedBy;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
}
