package com.gameplatform.server.model.entity.agent;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

@TableName("link_task")
public class LinkTask {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("batch_id")
    private Long batchId;
    
    @TableField("agent_id")
    private Long agentId;
    
    @TableField("code_no")
    private String codeNo;
    
    @TableField("token_hash")
    private String tokenHash;
    
    @TableField("expire_at")
    private LocalDateTime expireAt;
    
    private String status; // NEW | USING | LOGGED_IN | COMPLETED | REFUNDED | EXPIRED
    
    private String region; // Q | V
    
    @TableField("machine_id")
    private String machineId;
    
    @TableField("login_at")
    private LocalDateTime loginAt;
    
    @TableField("refund_at")
    private LocalDateTime refundAt;
    
    @TableField("revoked_at")
    private LocalDateTime revokedAt;
    
    @TableField("created_at")
    private LocalDateTime createdAt;
    
    @TableField("updated_at")
    private LocalDateTime updatedAt;
    
    @TableField("need_refresh")
    private Boolean needRefresh;
    
    @TableField("refresh_time")
    private LocalDateTime refreshTime;
    
    @TableField("qr_created_at")
    private LocalDateTime qrCreatedAt;
    
    @TableField("qr_expire_at")
    private LocalDateTime qrExpireAt;
    
    @TableField("first_region_select_at")
    private LocalDateTime firstRegionSelectAt;
    
    @TableField("completed_points")
    private Integer completedPoints;
    
    @TableField("completion_images")
    private String completionImages; // JSON格式存储4张图片URL
    
    @TableField("reason")
    private String reason; // 状态变化原因
    


    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public Long getBatchId() { return batchId; }
    public void setBatchId(Long batchId) { this.batchId = batchId; }

    public Long getAgentId() { return agentId; }
    public void setAgentId(Long agentId) { this.agentId = agentId; }

    public String getCodeNo() { return codeNo; }
    public void setCodeNo(String codeNo) { this.codeNo = codeNo; }

    public String getTokenHash() { return tokenHash; }
    public void setTokenHash(String tokenHash) { this.tokenHash = tokenHash; }

    public LocalDateTime getExpireAt() { return expireAt; }
    public void setExpireAt(LocalDateTime expireAt) { this.expireAt = expireAt; }

    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }

    public String getRegion() { return region; }
    public void setRegion(String region) { this.region = region; }

    public String getMachineId() { return machineId; }
    public void setMachineId(String machineId) { this.machineId = machineId; }

    public LocalDateTime getLoginAt() { return loginAt; }
    public void setLoginAt(LocalDateTime loginAt) { this.loginAt = loginAt; }

    public LocalDateTime getRefundAt() { return refundAt; }
    public void setRefundAt(LocalDateTime refundAt) { this.refundAt = refundAt; }

    public LocalDateTime getRevokedAt() { return revokedAt; }
    public void setRevokedAt(LocalDateTime revokedAt) { this.revokedAt = revokedAt; }

    public LocalDateTime getCreatedAt() { return createdAt; }
    public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }

    public LocalDateTime getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; }
    
    public Boolean getNeedRefresh() { return needRefresh; }
    public void setNeedRefresh(Boolean needRefresh) { this.needRefresh = needRefresh; }
    
    public LocalDateTime getRefreshTime() { return refreshTime; }
    public void setRefreshTime(LocalDateTime refreshTime) { this.refreshTime = refreshTime; }
    
    public LocalDateTime getQrCreatedAt() { return qrCreatedAt; }
    public void setQrCreatedAt(LocalDateTime qrCreatedAt) { this.qrCreatedAt = qrCreatedAt; }
    
    public LocalDateTime getQrExpireAt() { return qrExpireAt; }
    public void setQrExpireAt(LocalDateTime qrExpireAt) { this.qrExpireAt = qrExpireAt; }
    
    public LocalDateTime getFirstRegionSelectAt() { return firstRegionSelectAt; }
    public void setFirstRegionSelectAt(LocalDateTime firstRegionSelectAt) { this.firstRegionSelectAt = firstRegionSelectAt; }
    
    public Integer getCompletedPoints() { return completedPoints; }
    public void setCompletedPoints(Integer completedPoints) { this.completedPoints = completedPoints; }
    
    public String getCompletionImages() { return completionImages; }
    public void setCompletionImages(String completionImages) { this.completionImages = completionImages; }
    
    public String getReason() { return reason; }
    public void setReason(String reason) { this.reason = reason; }
    

}
