package com.zanxiang.game.back.serve.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * <p>
 * 腾讯游戏 APP 监测链接回传数据(文档：https://datanexus.qq.com/doc/develop/guider/interface/conversion/ad_track_click#5-%E5%AD%97%E6%AE%B5%E5%88%97%E8%A1%A8)
 * </p>
 *
 * @author wcc
 * @since 2024-06-27
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName(GameTencentAppCallback.TABLE_NAME)
public class GameTencentAppCallback implements Serializable {
    private static final long serialVersionUID = 1L;
    public static final String TABLE_NAME = "t_game_tencent_app_callback";

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    private String agentKey;

    private Long gameId;

    /**
     * 时间发生日期
     */
    private LocalDate day;

    /**
     * 点击id, ex: 24oi6xq2aaakvagnqu7a, 宏: __CLICK_ID__
     */
    private String clickId;

    /**
     * 点击时间, ex: 1586437362, 宏: __CLICK_TIME__
     */
    private Long clickTime;

    /**
     * 曝光时间, ex: 1586437361, ex: , 宏: __IMPRESSION_TIME__
     */
    private Long impressionTime;

    /**
     * 广告组id（实际为广告id）, ex: 228691429, ex: , 宏: __ADGROUP_ID__
     */
    private Long adgroupId;

    /**
     * 创意 ID, ex: 654321, 宏: __DYNAMIC_CREATIVE_ID__
     */
    private Long dynamicCreativeId;

    /**
     * 营销资产ID, ex: 12345, 宏: __MARKETING_ASSET_ID__
     */
    private Long marketingAssetId;

    /**
     * 素材标签ID, 宏: __MATERIAL_PACKAGE_ID__
     */
    private String materialPackageId;

    /**
     * 广告投放平台, 1：GDT entrance、3：京东直投、5：经 wechat mp 投放的广告、6：京东运营、8：QQ 公众账号平台、9：移动联盟 SSP、10：58 运营、11：58 商户、12：易车运营、13：易车商户、14：融 360 运营、15：融 360 商户、16：点评运营、17：点评商户、18：来自 OMG 的广告主、19：京东外单, 宏: __AD_PLATFORM_TYPE__
     */
    private Integer adPlatformType;

    /**
     * 广告主id, ex: 9471147, 宏: __ACCOUNT_ID__
     */
    private Long accountId;

    /**
     * 代理商id, ex: 1050262, 宏: __AGENCY_ID__
     */
    private Long agencyId;

    /**
     * 点击sku, ex: 478c4a93a054f7c9087b4ecb1f03f8a1, 宏: __CLICK_SKU_ID__
     */
    private String clickSkuId;

    /**
     * 设备类型, ex: ios、android, 宏: __DEVICE_OS_TYPE__
     */
    private String deviceOsType;

    /**
     * 请求时间, ex: 1586437335, 宏: __PROCESS_TIME__
     */
    private Long processTime;

    /**
     * 应用id, ex: 1101072624、wx69618ae091cf2c76, 宏: __PROMOTED_OBJECT_ID__
     */
    private String promotedObjectId;

    /**
     * 请求id, ex: vqp7xdombqonw, 宏: __REQUEST_ID__
     */
    private String requestId;

    /**
     * 曝光id, ex: xkrx5et47h7g401, 宏: __IMPRESSION_ID__
     */
    private String impressionId;

    /**
     * 设备id（imei或idfa的加密值）,对 IMEI 设备号转成小写，再进行md5编码，再小写，32位、对 IDFA 设备号保持大写，再进行 md5 编码，再小写，32位, 宏: __MUID__
     */
    private String muid;

    /**
     * 安卓id做md5加密后小写, ex: 797745b011e3286de9e1a1c59ba72c97, 宏: __HASH_ANDROID_ID__
     */
    private String hashAndroidId;

    /**
     * 媒体投放系统获取的用户终端的公共IPV4地址, ex: 183.226.102.120, 宏: __IP__
     */
    private String ip;

    /**
     * 用户代理（user_agent）, ex: Dalvik%2F2.1.0+%28Linux%3B+U%3B+Android+8.0.0%3B+PIC-AL00+Build%2FHUAWEIPIC-AL00%29, 宏: __USER_AGENT__
     */
    private String userAgent;

    /**
     * 情况1：使用 DataNexus 配置，并与广告直接绑定(ex: 空值)、情况2：新版转化归因中的监测链接信息（使用 DataNexus 或直接填写监测链接）直接提供上报信息回传接口的 url，示例为url encode 编码原值，广告主需要 decode 作为 post 请求url回传至腾讯广告(ex: http%3A%2F%2Ftracking.e.qq.com%2Fconv%3Fcb%3DxXx%252BxXx%253D%26conv_id%3D123)、情况3：使用投放管理平台 - 工具(ex: http://tracking.e.qq.com/conv?cb=%s&&%s&&%s&&%s 其中%s代表的参数分别为 productId、productType、advertiserId、clickId), 宏: __CALLBACK__
     */
    private String callback;

    /**
     * 联盟广告位id, ex: 8144201, 宏: __ENCRYPTED_POSITION_ID__
     */
    private String encryptedPositionId;

    /**
     * 媒体投放系统获取的用户终端的公共IPV6地址, ex: 2409%3A8a55%3A4cc0%3A4050%3A2507%3A4922%3Abbe0%3A524b, 宏: __IPV6__
     */
    private String ipv6;

    /**
     * Android Q 及更高版本的设备号，64位及以下，取原值后做md5加密, ex: 9d271e4d04de7e4b0b4f1df20e79ce64, 宏: __HASH_OAID__
     */
    private String hashOaid;

    /**
     * URL Encode后的JSON数组；其中qaid为中广协ID（即CAID），hash_qaid为CAID原值MD5加密后的结果, version为腾讯版本号，支持两个版本同时下发（即最新版和上一版），腾讯版本号与中广协版本对应关系为：腾讯 1001 = 中广协 20200901；腾讯 1003 = 中广协 20201230； 腾讯1004 = 中广协 20211207；腾讯1005=中广协 20220111；腾讯1006=中广协 20230330, 宏: __QAID_CAA__
     */
    private String caid;

    /**
     * 机型, ex:  PCKM00、Redmi 7、iPhone 7..., 宏: __MODEL__
     */
    private String model;

    /**
     * 专用于网页类小程序转化规则的点击监测下发，其它类型不支持该字段下发。每个用户针对小程序应用会产生一个安全的OpenID,只针对当前的小程序有效, ex: ozWH25VK0aodxYMZrX0Lqj9HHhrg, 宏: __WECHAT_OPEN_ID__
     */
    private String wechatOpenid;

    /**
     * 媒体投放系统获取的用户终端的公共IPV4地址MD5加密后转小写，仅在新版转化里支持配置, 宏: __IP_MD5__
     */
    private String ipMd5;

    /**
     * 媒体投放系统获取的用户终端的公共IPV6地址MD5加密后转小写，仅在新版转化里支持配置, 宏: __IPV6_MD5__
     */
    private String ipv6Md5;

    /**
     * 渠道包id, 只 for Android 设备生效, 宏: __CHANNEL_PACKAGE_ID__
     */
    private String channelPackageId;

    /**
     * 操作系统版本, 只 for iOS 和 Android 设备生效, 宏: __DEVICE_OS_VERSION__
     */
    private String deviceOsVersion;

    /**
     * 行为类型, LANDING_PAGE_CLICK：点击跳转按钮，RESERVATION：表单预约, 宏: __ACT_TYPE__
     */
    private String actType;

    /**
     * 行为时间, ex: 1586437361, 宏: __ACT_TIME__
     */
    private Long actTime;


}
