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

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; }
	}
}