package com.caliverse.admin.dynamodb.domain.atrrib;

import com.caliverse.admin.dynamodb.entity.MailItem;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.*;
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;

import java.util.List;

@Getter
@Setter
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@DynamoDbBean
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class MailAttrib extends DynamoDBAttribBase{
    @JsonProperty("mail_guid")
    private String mailGuid;

    @JsonProperty("is_read")
    private boolean isRead;
    @JsonProperty("is_get_item")
    private boolean isGetItem;
    @JsonProperty("is_system_mail")
    private boolean isSystemMail;

    @JsonProperty("sender_nickname")
    private String senderNickName;
    @JsonProperty("sender_guid")
    private String senderGuid;
    @JsonProperty("receiver_nickname")
    private String receiverNickName;
    @JsonProperty("receiver_guid")
    private String receiverGuid;

    private String title;
    private String text;

    @JsonProperty("create_time")
    private String createTime;
    @JsonProperty("expire_time")
    private String expireTime;
    @JsonProperty("is_text_by_meta_data")
    private boolean isTextByMetaData;
    @JsonProperty("item_list")
    private List<MailItem> itemList;
    @JsonProperty("package_order_id")
    private String packageOrderId;
    @JsonProperty("contents_arguments")
    private List<String> contentsArguments;
}
