package com.kt.event.eventservice.application.dto.kafka;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 이벤트 생성 완료 메시지 DTO
 *
 * event-created 토픽에 발행되는 메시지 형식
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EventCreatedMessage {

    /**
     * 이벤트 ID
     */
    @JsonProperty("event_id")
    private Long eventId;

    /**
     * 사용자 ID
     */
    @JsonProperty("user_id")
    private Long userId;

    /**
     * 이벤트 제목
     */
    @JsonProperty("title")
    private String title;

    /**
     * 이벤트 생성 일시
     */
    @JsonProperty("created_at")
    private LocalDateTime createdAt;

    /**
     * 이벤트 타입 (COUPON, DISCOUNT, GIFT, POINT 등)
     */
    @JsonProperty("event_type")
    private String eventType;

    /**
     * 메시지 타임스탬프
     */
    @JsonProperty("timestamp")
    private LocalDateTime timestamp;
}
