using Microsoft.EntityFrameworkCore; using PARR.Domain.Entities.Base; using PARR.Domain.Entities.RobotEntities; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace PARR.Domain.Entities { [Table("RobotConfigurations")] [Index(nameof(TemplateId), nameof(RobotCode), IsUnique = true)] [Index(nameof(TemplateId), nameof(TaskStatusCode))] [Index(nameof(TemplateId), nameof(RobotStatusCode))] public class RobotConfiguration : IBaseEntity { [Key] public Guid Id { get; set; } public DateTimeOffset DateCreated { get; set; } [NotMapped] public DateTimeOffset? DateModified { get; set; } public Guid TemplateId { get; set; } /// /// Идентификатор робота /// public int RobotCode { get; set; } /// /// Статус. Что нужно сделать роботу /// public int TaskStatusCode { get; set; } /// /// Статус работы робота /// public int RobotStatusCode { get; set; } /// /// Количество попыток выполнения задания роботом /// public int AttemptsNumber { get; set; } /// /// Последняя дата обновления статуса RobotStatusCode роботом /// public DateTimeOffset? LastRobotStatusUpdated { get; set; } [ForeignKey(nameof(TemplateId))] public Template? Template { get; set; } [ForeignKey(nameof(RobotCode))] public Robot? Robot { get; set; } [ForeignKey(nameof(TaskStatusCode))] public RobotEntities.TaskStatus? TaskStatus { get; set; } [ForeignKey(nameof(RobotStatusCode))] public RobotStatus? RobotStatus { get; set; } public ICollection RobotHistories { get; set; } = new HashSet(); } }