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

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

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

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

		[Comment("Статус события")]
		public int EventState { get; set; }
	}
}