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;

/**
 * 안건별 회의록 섹션 도메인 모델
 * AI 요약 결과를 안건별로 구조화하여 저장
 */
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AgendaSection {

    /**
     * 섹션 고유 ID
     */
    private String id;

    /**
     * 회의록 ID (통합 회의록 참조)
     */
    private String minutesId;

    /**
     * 회의 ID
     */
    private String meetingId;

    /**
     * 안건 번호 (1, 2, 3...)
     */
    private Integer agendaNumber;

    /**
     * 안건 제목
     */
    private String agendaTitle;

    /**
     * AI 생성 짧은 요약 (1줄, 20자 이내)
     */
    private String aiSummaryShort;

    /**
     * 안건별 회의록 요약
     * 사용자가 입력한 회의록 내용을 요약한 결과
     * (기존 discussions, decisions, opinions를 통합)
     */
    private String summary;

    /**
     * 보류 사항 목록
     */
    private List<String> pendingItems;

    /**
     * AI 추출 Todo 목록
     */
    private List<TodoItem> todos;

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

    /**
     * 수정 시간
     */
    private LocalDateTime updatedAt;

    /**
     * Todo 항목 내부 클래스
     */
    @Getter
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class TodoItem {
        /**
         * Todo 제목
         */
        private String title;

        /**
         * 담당자
         */
        private String assignee;

        /**
         * 마감일 (YYYY-MM-DD)
         */
        private String dueDate;

        /**
         * 설명
         */
        private String description;

        /**
         * 우선순위 (HIGH, MEDIUM, LOW)
         */
        private String priority;
    }
}
