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

namespace AsbCloudDb.Model
{
    [Table("t_cluster"), Comment("Кусты")]
    public partial class Cluster : IId, IMapPoint
    {
        [Key]
        [Column("id")]
        public int Id { get; set; }

        [Column("caption"), Comment("Название")]
        [StringLength(255)]
        public string Caption { get; set; } = null!;

        [Column("id_deposit")]
        public int IdDeposit { get; set; }

        [ForeignKey(nameof(IdDeposit))]
        [InverseProperty(nameof(Model.Deposit.Clusters))]
        public virtual Deposit Deposit { get; set; } = null!;

        [InverseProperty(nameof(Well.Cluster))]
        public virtual ICollection<Well> Wells { get; set; } = null!;

        [Column("latitude")]
        public double? Latitude { get; set; }

        [Column("longitude")]
        public double? Longitude { get; set; }

        [Column("timezone", TypeName = "jsonb"), Comment("Смещение часового пояса от UTC")]
        public SimpleTimezone Timezone { get; set; } = new();
    }
}