package com.zhentao.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 用户VO - 用于返回用户列表信息
 */
@Data
public class UserVO implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    // 用户基本信息
    private Integer userId;
    private String phone;
    private String email;
    private String nickname;
    private Integer gender;
    
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthDate;
    
    private String avatarUrl;
    private Integer status;
    private String sourceChannel;
    private Integer isProfileComplete;
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedAt;
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastLoginAt;
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastActiveAt;
    
    private Integer hasWechatLogin;
    private Integer consentToCollect;
    
    // 计算字段
    private Integer age;
    
    // VIP信息
    private Boolean isVip;  // 是否VIP
    private String vipLevel;  // VIP等级名称
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime vipStartTime;  // VIP开始时间
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime vipEndTime;  // VIP结束时间
    
    private Integer vipRemainingDays;  // VIP剩余天数
    
    // 红娘信息
    private Integer matchmakerId;  // 红娘ID
    private String matchmakerName;  // 红娘姓名
    private String matchmakerPhone;  // 红娘电话
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime boundAt;  // 绑定时间
}

