package com.zanxiang.game.module.manage.pojo.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author tianhua
 * @version 1.0
 * @description: TODO
 * @date 2023/12/29 16:23
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GameAdPolicyListVO {

    /**
     * 主键id
     */
    private Long id;

    /**
     * 规则名称
     */
    private String ruleName;

    /**
     * 规则类型：1-个人规则
     */
    private Integer ruleType;

    /**
     * 部门类型：1-游戏投放
     */
    private Integer department;

    /**
     * 游戏ID（子游戏维度）
     */
    private Long gameId;

    /**
     * 游戏名称（子游戏维度）
     */
    private String gameName;

    /**
     * 媒体类型：1-腾讯; 2-头条
     */
    private Integer mediaType;

    /**
     * 规则维度：1-默认;2-渠道;3-账号;4-广告
     */
    private Integer ruleDimension;

    /**
     * 生效范围(依据规则维度变化)：0（默认维度：当前创建人的所有广告）;其他（对应规则维度的ID字符串，'-'间隔）
     */
    private List<Long> effectiveScope;

    /**
     * 规则是否启用
     */
    private Boolean isStart;

    /**
     * 告警方式：1-短信;2-电话;3-钉钉
     */
    private Integer alarmType;

    /**
     * 通知频率，单位：分钟/次
     */
    private Integer alarmFrequency;

    /**
     * 通知总次数
     */
    private Integer alarmCount;

    /**
     * 操作维度：1-广告
     */
    private Integer operateDimension;

    /**
     * 操作类型：1-仅告警通知;2-暂停广告;3-启动广告;4-增加预算;5-减少预算;6-广告置顶标黄;7-广告置顶标红
     */
    private Integer operateType;

    /**
     * 执行范围：1-所有广告（不含删除）;2-投放中;3-暂停投放;4-预算不足
     */
    private Integer executeScope;

    /**
     * 数据巡视周期：1-实时
     */
    private Integer dataVisitsPeriod;

    /**
     * 规则条件（json存储对象格式，最多可同事设置5个指标条件）
     */
    private List<GameAdRuleConditionVO> ruleCondition;

    /**
     * 规则下的账号白名单（字符串形式，','间隔）
     */
    private String accountWhitelist;

    /**
     * 规则下的账号白名单有效时间类型：1-当日有效（自然日）;2-长期有效
     */
    private Integer accountValidTime;

    /**
     * 规则下的广告白名单（字符串形式，','间隔）
     */
    private String adWhitelist;

    /**
     * 规则下的广告白名单有效时间类型：1-当日有效（自然日）;2-长期有效
     */
    private Integer adValidTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建者
     */
    private Long createBy;

    /**
     * 创建者名称
     */
    private String createByName;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 更新者
     */
    private Long updateBy;

    /**
     * 更新者名称
     */
    private String updateByName;

}
