package com.tashow.cloud.systemapi.api.logger.dto;


import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

/**
     * RPC 服务 - 登录日志创建 Request DTO
     */
@Data
public class LoginLogCreateReqDTO {

    /**
     * 日志类型，参见 LoginLogTypeEnum 枚举类
     */
    @NotNull(message = "日志类型不能为空")
    private Integer logType;

    /**
     * 链路追踪编号"
     */
    private String traceId;

    /**
     * 用户类型
     */
    private Long userId;
    @NotNull(message = "用户类型不能为空")
    private Integer userType;
    /**
     * 用户账号
     */
    @Size(max = 30, message = "用户账号长度不能超过30个字符")
    private String username; // 不再强制校验 username 非空，因为 Member 社交登录时，此时暂时没有 username(mobile）！

    /**
     * 登录结果，参见 LoginResultEnum 枚举类"
     */
    @NotNull(message = "登录结果不能为空")
    private Integer result;

    /**
     * 用户 IP"
     */
    @NotEmpty(message = "用户 IP 不能为空")
    private String userIp;

    /**
     * 浏览器 UserAgent"
     */
    private String userAgent;

}
