package com.usky.vpp.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * vpp_bidding_config 竞价配置
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("vpp_bidding_config")
public class VppBiddingConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("config_name")
    private String configName;
    @TableField("effective_start")
    private LocalDateTime effectiveStart;
    @TableField("effective_end")
    private LocalDateTime effectiveEnd;
    @TableField("attachment_url")
    private String attachmentUrl;
    @TableField("attachment_name")
    private String attachmentName;

    /** 1 中长期响应
     *  2 日内响应
     *  3 快速响应
     * */
    @TableField("bidding_mode")
    private Integer biddingMode;

    @TableField("typical_coefficient")
    private BigDecimal typicalCoefficient;

    /**
     * 提前通知最小小时数（下限，不含本值，如 8 表示 >8）
     */
    @TableField("notice_min_hours")
    private BigDecimal noticeMinHours;

    /**
     * 提前通知最大小时数（上限，含本值，如 24 表示 ≤24）
     */
    @TableField("notice_max_hours")
    private BigDecimal noticeMaxHours;

    @TableField("max_price")
    private BigDecimal maxPrice;
    @TableField("min_price")
    private BigDecimal minPrice;
    @TableField("tenant_id")
    private Integer tenantId;

    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    @TableField("created_by")
    private String createdBy;
    @TableField("updated_by")
    private String updatedBy;
    @TableField("delete_flag")
    private Integer deleteFlag;

    @TableField("deleted_at")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deletedAt;
}
