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

namespace Persistence.Database.Entity
{
    public class TechMessage
    {
        [Key, Comment("Id события")]
        public Guid EventId { get; set; }

        [Comment("Id Категории важности")]
        public int CategoryId { get; set; }

        [Comment("Дата возникновения")]
        public DateTimeOffset Timestamp { get; set; }

        [Comment("Глубина забоя")]
        public double? Depth { get; set; }

        [Column(TypeName = "varchar(512)"), Comment("Текст сообщения")]
        public required string MessageText { get; set; }

        [Required, Comment("Id системы автобурения, к которой относится сообщение")]
        public required Guid SystemId { get; set; }

        [Required, ForeignKey(nameof(SystemId)), Comment("Система автобурения, к которой относится сообщение")]
        public virtual required DrillingSystem System { get; set; }

        [Comment("Id пользователя за пультом бурильщика")]
        public Guid UserId { get; set; }
    }
}