package com.gameplatform.server.model.dto.link;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 链接列表项DTO
 */
@Data
@Schema(description = "链接列表项")
public class LinkListItem {
    
    @Schema(description = "链接编号", example = "ABC12345")
    private String codeNo;
    
    @Schema(description = "批次ID", example = "123")
    private Long batchId;
    
    @Schema(description = "链接状态", example = "NEW")
    private String status;
    
    @Schema(description = "状态描述", example = "新建")
    private String statusDesc;
    
    @Schema(description = "过期时间", example = "2024-01-15T16:30:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime expireAt;
    
    @Schema(description = "是否已过期", example = "false")
    private Boolean isExpired;
    
    @Schema(description = "剩余时间（秒）", example = "3600")
    private Long remainingSeconds;
    
    @Schema(description = "每次奖励数量", example = "50")
    private Integer quantity;
    
    @Schema(description = "执行次数", example = "5")
    private Integer times;
    
    @Schema(description = "总奖励点数", example = "250")
    private Integer totalPoints;
    
    @Schema(description = "分配区域", example = "Q")
    private String region;
    
    @Schema(description = "机器ID", example = "MACHINE001")
    private String machineId;
    
    @Schema(description = "登录时间", example = "2024-01-15T14:30:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime loginAt;
    
    @Schema(description = "创建时间", example = "2024-01-15T12:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;
    
    @Schema(description = "更新时间", example = "2024-01-15T12:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedAt;
}
