package org.dromara.game.domain.bo;

import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.game.domain.PlatChannel;

/**
 * 渠道业务对象 plat_channel
 *
 * @author Hixon
 * @date 2024-08-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = PlatChannel.class, reverseConvertGenerate = false)
public class PlatChannelBo extends BaseEntity {

    /**
     * 渠道ID
     */
    @NotNull(message = "渠道ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 产品ID
     */
    @NotNull(message = "产品ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long productId;

    /**
     * 代理商ID
     */
    @NotNull(message = "代理商ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long proxyId;

    /**
     * 媒体账号ID
     */
    @NotBlank(message = "媒体账号ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String accountId;

    /**
     * 产品名
     */
    @NotBlank(message = "产品名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productName;

    /**
     * 媒体类型
     */
    @NotBlank(message = "媒体类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String platType;

    /**
     * 投放人员名称
     */
    @NotBlank(message = "投放人员名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userName;

    /**
     * 渠道名称
     */
    @NotBlank(message = "渠道名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 公司名
     */
    @NotBlank(message = "公司名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String company;

    /**
     * 运营方式
     */
    @NotBlank(message = "运营方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String operatingMode;

    /**
     * 投放方式
     */
    @NotBlank(message = "投放方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String deliveryMode;

    /**
     * 激活上报规则
     */
    @NotBlank(message = "激活上报规则不能为空", groups = { AddGroup.class, EditGroup.class })
    private String activeRules;

    /**
     * 关键行为上报规则
     */
    @NotBlank(message = "关键行为上报规则不能为空", groups = { AddGroup.class, EditGroup.class })
    private String actionRules;

    /**
     * 是否上报
     */
    @NotBlank(message = "是否上报不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isReport;

    /**
     * 状态（0正常 1停用）
     */
    @NotBlank(message = "状态（0正常 1停用）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;


}
