package com.uavps.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.uavps.common.annotation.Excel;
import com.uavps.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 无人机信息对象 uavps_unmanned_aerial_vehicle
 *
 * @author ruoyi
 * @date 2025-02-07
 */
public class UavpsUnmannedAerialVehicle extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 名称 */
    @Excel(name = "名称")
    private String name;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal longitude;

    /** 纬度 */
    @Excel(name = "纬度")
    private BigDecimal latitude;

    /** 海拔 */
    @Excel(name = "海拔")
    private Long altitude;

    /** 方位角 */
    @Excel(name = "方位角")
    private BigDecimal azimuthAngle;

    /** 俯仰角 */
    @Excel(name = "俯仰角")
    private BigDecimal pitchAngle;

    /** 横滚角 */
    @Excel(name = "横滚角")
    private BigDecimal rollAngle;

    /** 东向速度 */
    @Excel(name = "东向速度")
    private BigDecimal eastSpeed;

    /** 北向速度 */
    @Excel(name = "北向速度")
    private BigDecimal northSpeed;

    /** 天向速度 */
    @Excel(name = "天向速度")
    private BigDecimal skySpeed;

    /** 航迹角 */
    @Excel(name = "航迹角")
    private BigDecimal trackAngle;

    /** UTC时间 */
    @Excel(name = "UTC时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date utcTimes;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public BigDecimal getLongitude() {
        return longitude;
    }

    public void setLongitude(BigDecimal longitude) {
        this.longitude = longitude;
    }

    public BigDecimal getLatitude() {
        return latitude;
    }

    public void setLatitude(BigDecimal latitude) {
        this.latitude = latitude;
    }

    public Long getAltitude() {
        return altitude;
    }

    public void setAltitude(Long altitude) {
        this.altitude = altitude;
    }

    public BigDecimal getAzimuthAngle() {
        return azimuthAngle;
    }

    public void setAzimuthAngle(BigDecimal azimuthAngle) {
        this.azimuthAngle = azimuthAngle;
    }

    public BigDecimal getPitchAngle() {
        return pitchAngle;
    }

    public void setPitchAngle(BigDecimal pitchAngle) {
        this.pitchAngle = pitchAngle;
    }

    public BigDecimal getRollAngle() {
        return rollAngle;
    }

    public void setRollAngle(BigDecimal rollAngle) {
        this.rollAngle = rollAngle;
    }

    public BigDecimal getEastSpeed() {
        return eastSpeed;
    }

    public void setEastSpeed(BigDecimal eastSpeed) {
        this.eastSpeed = eastSpeed;
    }

    public BigDecimal getNorthSpeed() {
        return northSpeed;
    }

    public void setNorthSpeed(BigDecimal northSpeed) {
        this.northSpeed = northSpeed;
    }

    public BigDecimal getSkySpeed() {
        return skySpeed;
    }

    public void setSkySpeed(BigDecimal skySpeed) {
        this.skySpeed = skySpeed;
    }

    public BigDecimal getTrackAngle() {
        return trackAngle;
    }

    public void setTrackAngle(BigDecimal trackAngle) {
        this.trackAngle = trackAngle;
    }

    public Date getUtcTimes() {
        return utcTimes;
    }

    public void setUtcTimes(Date utcTimes) {
        this.utcTimes = utcTimes;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("longitude", getLongitude())
                .append("latitude", getLatitude())
                .append("altitude", getAltitude())
                .append("azimuthAngle", getAzimuthAngle())
                .append("pitchAngle", getPitchAngle())
                .append("rollAngle", getRollAngle())
                .append("eastSpeed", getEastSpeed())
                .append("northSpeed", getNorthSpeed())
                .append("skySpeed", getSkySpeed())
                .append("trackAngle", getTrackAngle())
                .append("utcTimes", getUtcTimes())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
