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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import java.util.List;
import lombok.Getter;
import lombok.Setter;

/**
 * Created by SonPhung on Monday, 20-Jul-2026
 */
@Getter
@Setter
public class RewardContentNotification extends Fw {

    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @JsonPropertyDescription("Số thứ tự bản ghi rule")
    private Long ruleRecordNo;

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

    @JsonPropertyDescription("Tham chiếu đến template Notification")
    private ReferenceData messageId;

    @JsonPropertyDescription("Loại tin nhắn Notification")
    private String messageType;

    @JsonPropertyDescription("Mã nội dung Notification")
    private String notificationContentId;

    @JsonPropertyDescription("Mã ngôn ngữ (ví dụ: vi, en)")
    private String languageCode;

    @JsonPropertyDescription("Tiêu đề Notification")
    private String title;

    @JsonPropertyDescription("Nội dung tóm tắt Notification")
    private String shortContent;

    @JsonPropertyDescription("Nội dung chi tiết Notification")
    private String content;

    @JsonPropertyDescription("Loại điều hướng khi click vào Notification")
    private ReferenceData navigationType;

    @JsonPropertyDescription("Đường dẫn liên kết điều hướng")
    private String link;

    @JsonPropertyDescription("Màn hình đích đến trên app")
    private ReferenceData targetScreen;

    @JsonPropertyDescription("Tham chiếu Pool điểm/quà")
    private ReferenceData poolId;

    @JsonPropertyDescription("Nhóm ưu đãi liên kết")
    private ReferenceData offerGroup;

    @JsonPropertyDescription("Danh mục liên kết")
    private ReferenceData categoryId;

    @JsonPropertyDescription("Số tham chiếu")
    private ReferenceData referenceNo;

    @JsonPropertyDescription("Mã chiến dịch liên kết")
    private ReferenceData campaignId;

    @JsonPropertyDescription("Mã sản phẩm/quà tặng")
    private ReferenceData itemCode;

    @JsonPropertyDescription("Loại thông báo")
    private ReferenceData notificationType;

    @JsonPropertyDescription("Có chứa nội dung đa phương tiện không")
    private Boolean richMedia;

    @JsonPropertyDescription("Ảnh đại diện Notification")
    private ImageReference avatar;

    @JsonPropertyDescription("Danh sách các nút bấm thao tác trên Notification")
    private List<RewardNotificationButton> relatedButtons;

}
