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

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

/**
 * 회의록 섹션 도메인 모델
 */
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MinutesSection {

    /**
     * 섹션 ID
     */
    private String sectionId;

    /**
     * 회의록 ID
     */
    private String minutesId;

    /**
     * 섹션 유형 (AGENDA, DISCUSSION, DECISION, ACTION_ITEM)
     */
    private String type;

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

    /**
     * 섹션 내용
     */
    private String content;

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

    /**
     * 검증 완료 여부
     */
    private Boolean verified;

    /**
     * 잠금 여부
     */
    private Boolean locked;

    /**
     * 잠금 사용자 ID
     */
    private String lockedBy;

    /**
     * 섹션 잠금
     */
    public void lock(String userId) {
        this.locked = true;
        this.lockedBy = userId;
    }

    /**
     * 섹션 잠금 해제
     */
    public void unlock() {
        this.locked = false;
        this.lockedBy = null;
    }

    /**
     * 섹션 검증 완료
     */
    public void verify() {
        this.verified = true;
    }

    /**
     * 섹션 잠금 여부 확인
     */
    public boolean isLocked() {
        return Boolean.TRUE.equals(this.locked);
    }

    /**
     * 섹션 검증 완료 여부 확인
     */
    public boolean isVerified() {
        return Boolean.TRUE.equals(this.verified);
    }

    /**
     * 섹션 정보 업데이트
     */
    public void update(String title, String content) {
        this.title = title;
        this.content = content;
    }
}
