using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace AsbCloudDb.Model.ProcessMapPlan;

public abstract class ProcessMapPlanBase : ChangeLogAbstract, IId, IWellRelated
{
    [Column("id_well"), Comment("Id скважины")]
    public int IdWell { get; set; }

    [Column("id_wellsection_type"), Comment("Тип секции")]
    public int IdWellSectionType { get; set; }

    [Column("depth_start"), Comment("Глубина по стволу от, м")]
    [Range(0.0, 9999.9)]
    public double DepthStart { get; set; }

    [Column("depth_end"), Comment("Глубина по стволу до, м")]
    [Range(0.0, 9999.9)]
    public double DepthEnd { get; set; }

    [ForeignKey(nameof(IdWell))]
    public virtual Well Well { get; set; } = null!;

    [ForeignKey(nameof(IdWellSectionType))]
    public virtual WellSectionType WellSectionType { get; set; } = null!;
}