package com.yingpai.stock.domain.vo;

import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yingpai.stock.domain.StockPoolHistory;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 股票池历史视图对象
 */
@Data
@AutoMapper(target = StockPoolHistory.class)
public class StockPoolHistoryVo {

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

    /**
     * 记录日期
     */
    @ColumnWidth(15)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate recordDate;

    /**
     * 股票代码
     */
    @ExcelProperty(index = 0)
    private String stockCode;

    /**
     * 股票名称
     */
    @ExcelProperty(index = 1)
    private String stockName;

    /**
     * 涨幅%
     */
    @ExcelProperty(index = 2)
    private BigDecimal changePercent;

    /**
     * 收盘价
     */
    @ExcelProperty(index = 3)
    private BigDecimal closePrice;

    /**
     * 总金额
     */
    @ExcelProperty(index = 4)
    private BigDecimal totalAmount;

    /**
     * 强度评分
     */
    @ExcelProperty(index = 5)
    private BigDecimal strengthScore;

    /**
     * 流通市值
     */
    @ExcelProperty(index = 6)
    private BigDecimal circulationMarketValue;

    /**
     * 主升周期
     */
    @ExcelProperty(index = 7)
    private String mainRisePeriod;

    /**
     * 近期涨手
     */
    @ExcelProperty(index = 8)
    private String recentRiseHand;

    /**
     * 近期涨停
     */
    @ExcelProperty(index = 9)
    private String recentLimitUp;

    /**
     * 当天最高价
     */
    @ExcelProperty(index = 10)
    private BigDecimal dayHighestPrice;

    /**
     * 当天最低价
     */
    @ExcelProperty(index = 11)
    private BigDecimal dayLowestPrice;

    /**
     * 当天均价
     */
    @ExcelProperty(index = 12)
    private BigDecimal dayAvgPrice;

    /**
     * 当天收盘价
     */
    @ExcelProperty(index = 13)
    private BigDecimal dayClosePrice;

    /**
     * 操作管理员ID
     */
    private Long adminId;

    /**
     * 创建时间
     */
    @ColumnWidth(20)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ColumnWidth(20)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
