using LinqToDB.Mapping;
using Azaion.Flights.Enums;

namespace Azaion.Flights.Database.Entities;

[Table("map_objects")]
public class MapObject
{
    [PrimaryKey]
    [Column("id")]
    public Guid Id { get; set; }

    [Column("flight_id")]
    public Guid FlightId { get; set; }

    [Column("h3_index")]
    public string H3Index { get; set; } = string.Empty;

    [Column("mgrs")]
    public string Mgrs { get; set; } = string.Empty;

    [Column("lat")]
    public decimal? Lat { get; set; }

    [Column("lon")]
    public decimal? Lon { get; set; }

    [Column("class_num")]
    public int ClassNum { get; set; }

    [Column("label")]
    public string Label { get; set; } = string.Empty;

    [Column("size_width_m")]
    public decimal SizeWidthM { get; set; }

    [Column("size_length_m")]
    public decimal SizeLengthM { get; set; }

    [Column("confidence")]
    public decimal Confidence { get; set; }

    [Column("object_status")]
    public ObjectStatus ObjectStatus { get; set; }

    [Column("first_seen_at")]
    public DateTime FirstSeenAt { get; set; }

    [Column("last_seen_at")]
    public DateTime LastSeenAt { get; set; }
}
