using SqlSugar;

namespace OpenAuth.Repository.Domain;

using System;

/// <summary>
/// 媒体文件实体类
/// </summary>
[SugarTable("lasa_mediafile")]
public class LasaMediaFile
{
    /// <summary>
    /// 主键ID
    /// </summary>
    [SugarColumn(IsPrimaryKey = true, ColumnName = "Id")]
    public string Id { get; set; }

    /// <summary>
    /// 计划ID
    /// </summary>
    public string FlightId { get; set; }

    /// <summary>
    /// 飞行器产品枚举
    /// </summary>
    public string DroneModelKey { get; set; }

    /// <summary>
    /// 是否是原图 0否1是
    /// </summary>
    public bool? IsOriginal { get; set; }

    /// <summary>
    /// 文件索引
    /// </summary>
    public long? MediaIndex { get; set; }

    /// <summary>
    /// 负载产品枚举
    /// </summary>
    public string PayloadModelKey { get; set; }

    /// <summary>
    /// 拍摄绝对高度
    /// </summary>
    public float? AbsoluteAltitude { get; set; }

    /// <summary>
    /// 云台偏航角
    /// </summary>
    public float? GimbalYawDegree { get; set; }

    /// <summary>
    /// 拍摄相对高度
    /// </summary>
    public float? RelativeAltitude { get; set; }

    /// <summary>
    /// 拍摄位置纬度
    /// </summary>
    public float? Lat { get; set; }

    /// <summary>
    /// 拍摄位置经度
    /// </summary>
    public float? Lng { get; set; }

    /// <summary>
    /// 文件名称
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 对象Key
    /// </summary>
    public string ObjectKey { get; set; }

    /// <summary>
    /// 路径
    /// </summary>
    public string Path { get; set; }

    /// <summary>
    /// 文件创建时间
    /// </summary>
    public DateTime? CreateTime { get; set; }

    public string TaskId { get; set; }

    /// <summary>
    /// 文件夹所属层级
    /// </summary>
    public int Level { get; set; }

    /// <summary>
    /// 父文件key
    /// </summary>
    public string ParentKey { get; set; }

    public string WorkspaceId { get; set; }

    public int? ShowOnMap { get; set; }

    public int? display { get; set; }

    public string GraffitiJson { get; set; }

    public string FileTags { get; set; }

    public long? Size { get; set; }
    public int? Width { get; set; }
    public int? Height { get; set; }
    public string Tid { get; set; }
    public string Bid { get; set; }

    public int? FlightType { get; set; }

    [SugarColumn(IsIgnore = true)] 
    public string PicLink { get; set; }

    public string minipic { get; set; }
    
    public double? FocalLength { get; set; }
    
    public string PayloadModelName { get; set; }
    public int? Type { get; set; }

    [SugarColumn(IsIgnore = true)] public List<LasaMediaFile> Children { get; set; }

    [SugarColumn(IsIgnore = true)] public string CreateUserName { get; set; }
    [SugarColumn(IsIgnore = true)] public string TaskName { get; set; }
    [SugarColumn(IsIgnore = true)] public string AirLineName { get; set; }
}