64 lines
2.0 KiB
C#
64 lines
2.0 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using PARR.Domain.Entities.Base;
|
|
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 TaskStatus? TaskStatus { get; set; }
|
|
|
|
[ForeignKey(nameof(RobotStatusCode))]
|
|
public RobotStatus? RobotStatus { get; set; }
|
|
|
|
public ICollection<RobotHistory> RobotHistories { get; set; } = new HashSet<RobotHistory>();
|
|
}
|
|
}
|