Files
parr_api/PARR.Domain/Entities/RobotConfiguration.cs

65 lines
2.1 KiB
C#

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; }
/// <summary>
/// Идентификатор робота
/// </summary>
public int RobotCode { get; set; }
/// <summary>
/// Статус. Что нужно сделать роботу
/// </summary>
public int TaskStatusCode { get; set; }
/// <summary>
/// Статус работы робота
/// </summary>
public int RobotStatusCode { get; set; }
/// <summary>
/// Количество попыток выполнения задания роботом
/// </summary>
public int AttemptsNumber { get; set; }
/// <summary>
/// Последняя дата обновления статуса RobotStatusCode роботом
/// </summary>
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<RobotHistory> RobotHistories { get; set; } = new HashSet<RobotHistory>();
}
}