package dev.sonpx.loyalty.mcp.reward.dto;

import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import dev.sonpx.loyalty.mcp.reward.enums.RuleType;
import dev.sonpx.loyalty.mcp.reward.model.ReferenceData;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CampaignRuleSummaryDto implements Serializable {

    @JsonPropertyDescription("Mã định danh của rule")
    private String ruleId;

    @JsonPropertyDescription("Tên của rule")
    private String ruleName;

    @JsonPropertyDescription("Loại rule: RED, REP, AWD, ADJ, MAWD, CEP")
    private RuleType ruleType;

    @JsonPropertyDescription("Tham chiếu đến Campaign chứa rule này")
    private ReferenceData campaignId;

    @JsonPropertyDescription("Thời gian bắt đầu có hiệu lực của rule")
    private LocalDateTime effectiveFrom;

    @JsonPropertyDescription("Thời gian kết thúc hiệu lực của rule")
    private LocalDateTime effectiveTo;

    @JsonPropertyDescription("Tham chiếu đến Pool chính")
    private ReferenceData poolId;
}
