package com.aircraft.modules.aircraft.domain;

import com.aircraft.base.BaseEntity;
import com.aircraft.domain.dto.AttachmentMaterialDTO;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * <p>
 * 飞行器设备表
 * </p>
 *
 * @author cli
 * @since 2025-07-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("fms_ac_aircraft_device")
public class AircraftDevice extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @NotNull(groups = BaseEntity.Update.class)
    @ApiModelProperty(value = "主键id")
    private Long id;

    /**
     * 飞行器名称
     */
    @NotBlank
    @ApiModelProperty(value = "飞行器名称")
    private String name;

    /**
     * 设备型号
     */
    @NotBlank
    @ApiModelProperty(value = "设备型号")
    private String model;

    /**
     * 品牌（DJI，SF）
     */
    @NotBlank
    @ApiModelProperty(value = "品牌（DJI，SF）")
    private String brand;

    /**
     * 类型：0-载物飞行，1-载人飞行，2-其他
     */
    @NotNull
    @ApiModelProperty(value = "类型：0-载物飞行，1-载人飞行，2-其他")
    private Integer useType;

    /**
     * 区域id
     */
    @NotNull
    @ApiModelProperty(value = "区域id")
    private Long areaId;

    /**
     * 景区id
     */
    @NotNull
    @ApiModelProperty(value = "景区id")
    private Long scenicId;

    /**
     * 飞行员（负责人）id
     */
    @NotNull
    @ApiModelProperty(value = "飞行员（负责人）id")
    private Long employeesId;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;


    /**
     * 设备图片
     */
    @NotNull
    @TableField(exist = false)
    @ApiModelProperty(value = "设备图片")
    private List<AttachmentMaterialDTO> deviceImages;

}
