package com.unicorn.hgzero.meeting.infra.event.dto;

import lombok.Builder;
import lombok.Getter;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 알림 요청 이벤트
 */
@Getter
@Builder
public class NotificationRequestEvent {

    /**
     * 알림 타입
     */
    private final String notificationType;

    /**
     * 수신자 ID
     */
    private final String recipientId;

    /**
     * 수신자 이름
     */
    private final String recipientName;

    /**
     * 수신자 이메일
     */
    private final String recipientEmail;

    /**
     * 제목 (Legacy)
     */
    private final String subject;

    /**
     * 제목
     */
    private final String title;

    /**
     * 메시지
     */
    private final String message;

    /**
     * 템플릿 데이터
     */
    private final Map<String, Object> templateData;

    /**
     * 발신자
     */
    private final String sender;

    /**
     * 요청자
     */
    private final String requestedBy;

    /**
     * 요청자 이름
     */
    private final String requestedByName;

    /**
     * 우선순위
     */
    private final String priority;

    /**
     * 관련 엔티티 ID
     */
    private final String relatedEntityId;

    /**
     * 관련 엔티티 타입
     */
    private final String relatedEntityType;

    /**
     * 예약 발송 시간
     */
    private final LocalDateTime scheduledTime;

    /**
     * 이벤트 발생 시간
     */
    private final LocalDateTime eventTime;

    /**
     * 이벤트 타입
     */
    private final String eventType = "NOTIFICATION_REQUEST";
}