package com.fizz.business.domain.msg;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "后处理段测量电文")
public class AppMeasureCoatMessage extends OpcMessage {

    @Schema(description = "系统计数器 (ms)")
    private Integer systemCounter;

    @Schema(description = "钢带位置 (m)，0 表示头部在参考点 (weld detector 2)")
    private BigDecimal stripLocation;

    @Schema(description = "测量次数 / 宽度")
    private Integer measurementCount;

    @Schema(description = "上层平均涂层重量 (g/m²)")
    private BigDecimal avrCoatingWeightTop;

    @Schema(description = "上层标准涂层重量 (g/m²)")
    private BigDecimal stdCoatingWeightTop;

    @Schema(description = "上层最大涂层重量 (g/m²)")
    private BigDecimal maxCoatingWeightTop;

    @Schema(description = "上层最小涂层重量 (g/m²)")
    private BigDecimal minCoatingWeightTop;

    @Schema(description = "下层平均涂层重量 (g/m²)")
    private BigDecimal avrCoatingWeightBottom;

    @Schema(description = "下层标准涂层重量 (g/m²)")
    private BigDecimal stdCoatingWeightBottom;

    @Schema(description = "下层最大涂层重量 (g/m²)")
    private BigDecimal maxCoatingWeightBottom;

    @Schema(description = "下层最小涂层重量 (g/m²)")
    private BigDecimal minCoatingWeightBottom;

    @Schema(description = "气刀压力")
    private BigDecimal airKnifePressure;

    @Schema(description = "气刀流量")
    private BigDecimal airKnifeFlow;

    @Schema(description = "气刀间隙")
    private BigDecimal airKnifeGap;

    @Schema(description = "TM出口钢带速度 (m/min)")
    private BigDecimal stripSpeedTmExit;

    @Schema(description = "钢带张力 BR5 – TM (daN)")
    private BigDecimal tensionBr5Tm;

    @Schema(description = "钢带张力 TM – BR6 (daN)")
    private BigDecimal tensionTmBr6;

    @Schema(description = "钢带张力 BR5 – BR6 (daN)")
    private BigDecimal tensionBr5Br6;

    @Schema(description = "TM mask (0x0001 tempering, 0x0002 type, 0x0004 pure water, 0x0008 water+detergent, 0x0010 control mode)")
    private Integer tmMask;

    @Schema(description = "TM延伸率 (%)")
    private BigDecimal tmElongation;

    @Schema(description = "操作侧辊压力 (kN)")
    private BigDecimal rollForceOperator;

    @Schema(description = "驱动侧辊压力 (kN)")
    private BigDecimal rollForceDrive;

    @Schema(description = "电机扭矩 (kNm)")
    private BigDecimal motorTorque;

    @Schema(description = "总弯曲力 (kN)")
    private BigDecimal bendingForce;

    @Schema(description = "防卷翘辊 - 网距 (mm)")
    private BigDecimal antiCrimpingRollMesh;

    @Schema(description = "Billy Roll - 网距 (mm)")
    private BigDecimal billyRollMesh;

    @Schema(description = "备用字段 1")
    private BigDecimal spare1;

    @Schema(description = "备用字段 2")
    private BigDecimal spare2;

    @Schema(description = "备用字段 3")
    private BigDecimal spare3;

    @Schema(description = "钢带张力 TL – BR7 (calc., daN)")
    private BigDecimal tensionTlBr7;

    @Schema(description = "钢带张力 BR6 – BR7 (calc., daN)")
    private BigDecimal tensionBr6Br7;

    @Schema(description = "拉矫机投用")
    private Integer tlFlag;

    @Schema(description = "TL延伸率 (%)")
    private BigDecimal tlElongation;

    @Schema(description = "Leveling Unit N°1 - 网距 (mm)")
    private BigDecimal levelingUnit1Mesh;

    @Schema(description = "Leveling Unit N°2 - 网距 (mm)")
    private BigDecimal levelingUnit2Mesh;

    @Schema(description = "Anti Cross Bow Unit - 网距 (mm)")
    private BigDecimal antiCrossBowUnitMesh;

    @Schema(description = "AFP段钢带张力 BR7 – BR8 (N/mm²)")
    private BigDecimal tensionBr7Br8;

    @Schema(description = "AFP段钢带速度 (m/min)")
    private BigDecimal stripSpeedAfp;

    @Schema(description = "钝化标记 1开启，2耐指纹，3干膜润滑剂")
    private Integer coatingFlag;

    @Schema(description = "AFP段钢带温度 (℃)")
    private Integer stripTempAfp;

    @Schema(description = "BR4BR5张力")
    private BigDecimal tensionBr4Br5;

    @Schema(description = "锌锅温度")
    private BigDecimal potTemperature;

    @Schema(description = "冷却塔温度")
    private BigDecimal coolingTowerTemperature;

    @Schema(description = "锌锅功率")
    private BigDecimal potPower;
}
