package com.unicorn.hgzero.meeting.biz.domain;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 회의록 템플릿 도메인 모델
 */
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Template {

    /**
     * 템플릿 ID
     */
    private String templateId;

    /**
     * 템플릿 이름
     */
    private String name;

    /**
     * 템플릿 설명
     */
    private String description;

    /**
     * 템플릿 카테고리 (GENERAL, TECHNICAL, MANAGEMENT, SALES)
     */
    private String category;

    /**
     * 템플릿 섹션 목록
     */
    private List<TemplateSection> sections;

    /**
     * 공개 여부
     */
    private Boolean isPublic;

    /**
     * 생성자 ID
     */
    private String createdBy;

    /**
     * 생성 시간
     */
    private LocalDateTime createdAt;

    /**
     * 최종 수정 시간
     */
    private LocalDateTime lastModifiedAt;

    /**
     * 템플릿 섹션 내부 클래스
     */
    @Getter
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class TemplateSection {
        /**
         * 섹션 유형
         */
        private String type;

        /**
         * 섹션 제목
         */
        private String title;

        /**
         * 섹션 순서
         */
        private Integer order;

        /**
         * 기본 내용
         */
        private String defaultContent;
    }
}
