package com.sikey.wa04.business.infrastructure.dto.request.baidu;

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

/**
 * @Author: qin
 * @Date: 2025/3/21
 * @Description: 百度请求体
 */
@Data
public class BaiduLocationRequest {

    @NotNull(message = "key is required")
    private String key; // 用户唯一标识

    @NotNull(message = "src is required")
    private String src; // 定位请求来源

    @NotNull(message = "prod is required")
    private String prod; // 产品线名称

    @NotNull(message = "trace is required")
    private boolean trace; // 是否开启trace

    @NotNull(message = "ver is required")
    private String ver; // 版本号*/

    @NotNull(message = "accesstype is required")
    private Integer accesstype; // 必填: 移动端接入网络方式 (0: 移动, 1: wifi, 2: gps)

    private String smac;        // 非必选但建议: 手机MAC码
    @NotNull(message = "imei is required")
    private String imei;        // 必填: 移动设备识别码
    private String clientip;    // 非必选但建议: 移动网关IP
    private Integer cdma;       // 非必选但建议: 是否CDMA (0: 非CDMA, 1: CDMA)
    private String imsi;        // 非必选但建议: 移动用户识别码
    private String gps;         // accesstype=2时必填: GPS数据 (经度|纬度|半径)
    private String network;     // accesstype=0时必填: 无线网络类型
    private String tel;         // 非必选: 手机号码
    private String bts;         // accesstype=0时必填: 基站信息
    private String nearbts;     // 非必选: 周边基站信息
    private String mmac;        // 非必选但建议: 已连热点MAC信息
    private String macs;        // accesstype=1时必填: Wi-Fi列表MAC信息
    private String bleand;      // 非必选: 已连接蓝牙MAC信息 (Android)
    private String blelp;       // 非必选: 定位初始值 (Android/IOS)
    private String bleios;      // 非必选: 扫到的蓝牙数据 (IOS)
    private String coor;        // 非必选: 指定坐标系 (GCJ02|BD09LL)
    private String output;      // 非必选: 返回数据格式 (JSON|XML)
    @NotNull(message = "ctime is required")
    private String ctime;       // 必填: 客户端时间戳
    private String need_rgc;    // 非必选: 是否返回地址信息 (Y|N)
    private String need_poi;    // 非必选: 是否返回周边POI (Y|N)
    private String sema;        // 非必选: 返回附近POI名称 (aptagd)
    private String need_sub;    // 非必选: 是否返回地铁状态 (Y|N)
}
