using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;

namespace AsbCloudDb.Model.Subsystems
{
    [Table("t_subsystem_operation_time"), Comment("наработки подсистем")]
    public partial class SubsystemOperationTime : IId
    {
        [Column("id"), Key]
        public int Id { get; set; }
          
        [Column("id_telemetry"), Comment("ИД телеметрии по которой выдается информация")]
        public int IdTelemetry { get; set; }

        [Column("id_subsystem")]
        public int IdSubsystem { get; set; }
        
        [Column("date_start"), Comment("дата/время включения подсистемы")]
        public DateTimeOffset DateStart { get; set; }   
        
        [Column("date_end"), Comment("дата/время выключения подсистемы")]
        public DateTimeOffset DateEnd { get; set; }       
        
        [Column("depth_start"), Comment("глубина забоя на момент включения подсистемы")]
        public float? DepthStart { get; set; }        

        [Column("depth_end"), Comment("глубина забоя на момент выключения подсистемы")]
        public float? DepthEnd { get; set; }

        [JsonIgnore]
        [ForeignKey(nameof(IdSubsystem))]
        public virtual Subsystem Subsystem { get; set; } = null!;

        [JsonIgnore]
        [ForeignKey(nameof(IdTelemetry))]        
        public virtual Telemetry Telemetry { get; set; } = null!;
    }
}