package com.yolo.keyboard.controller.admin.productitems.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yolo.keyboard.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.yolo.keyboard.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 内购商品分页 Request VO")
@Data
public class KeyboardProductItemsPageReqVO extends PageParam {

    @Schema(description = "产品标识符，唯一标识每个产品（如 com.loveKey.nyx.2month）", example = "15153")
    private String productId;

    @Schema(description = "产品类型，区分订阅（subscription）和内购（in-app-purchase）", example = "1")
    private String type;

    @Schema(description = "产品名称（如 100, 2）", example = "芋艿")
    private String name;

    @Schema(description = "产品单位（如 金币，个月）")
    private String unit;

    @Schema(description = "订阅时长的数值部分（如 2）")
    private Integer durationValue;

    @Schema(description = "订阅时长的单位部分（如 月，天）")
    private String durationUnit;

    @Schema(description = "产品价格", example = "25376")
    private BigDecimal price;

    @Schema(description = "产品的货币单位，如美元（$）")
    private String currency;

    @Schema(description = "产品的描述，提供更多细节信息", example = "你说的对")
    private String description;

    @Schema(description = "产品项的创建时间，默认当前时间")
    private LocalDateTime createdAt;

    @Schema(description = "产品项的最后更新时间，更新时自动设置为当前时间")
    private LocalDateTime updatedAt;

    @Schema(description = "订阅时长的具体天数")
    private Integer durationDays;

    @Schema(description = "订阅等级")
    private Integer level;

    @Schema(description = "平台")
    private String platform;
}