feat(dal): Переделал модели для новой концепции управления роботами
This commit is contained in:
21
PARR.DAL/Models/Robot.cs
Normal file
21
PARR.DAL/Models/Robot.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.DAL.Models
|
||||
{
|
||||
[Table("Robots")]
|
||||
[Index(nameof(Name), IsUnique = true)]
|
||||
public class Robot
|
||||
{
|
||||
[Key]
|
||||
public int Code { get; set; }
|
||||
|
||||
public required string Name { get; set; }
|
||||
|
||||
public required string Description { get; set; }
|
||||
|
||||
|
||||
public ICollection<RobotConfiguration> RobotConfigurations { get; set; } = new HashSet<RobotConfiguration>();
|
||||
}
|
||||
}
|
||||
61
PARR.DAL/Models/RobotConfiguration.cs
Normal file
61
PARR.DAL/Models/RobotConfiguration.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.DAL.Models.Base;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.DAL.Models
|
||||
{
|
||||
[Table("RobotConfigurations")]
|
||||
[Index(nameof(TemplateId), nameof(RobotCode), IsUnique = true)]
|
||||
public class RobotConfiguration : IBase
|
||||
{
|
||||
[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? LastStatusUpdated { get; set; }
|
||||
|
||||
[ForeignKey(nameof(TemplateId))]
|
||||
public Template? Template { get; set; }
|
||||
|
||||
[ForeignKey(nameof(RobotCode))]
|
||||
public Robot? Robot { get; set; }
|
||||
|
||||
[ForeignKey(nameof(TaskStatusCode))]
|
||||
public StatusTask? StatusTask { get; set; }
|
||||
|
||||
[ForeignKey(nameof(RobotStatusCode))]
|
||||
public RobotStatus? RobotStatus { get; set; }
|
||||
|
||||
public ICollection<RobotHistory> RobotHistories { get; set; } = new HashSet<RobotHistory>();
|
||||
}
|
||||
}
|
||||
44
PARR.DAL/Models/RobotHistory.cs
Normal file
44
PARR.DAL/Models/RobotHistory.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using PARR.DAL.Models.Base;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.DAL.Models
|
||||
{
|
||||
[Table("RobotHistories")]
|
||||
public class RobotHistory : IBase
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public DateTimeOffset DateCreated { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public DateTimeOffset? DateModified { get; set; }
|
||||
|
||||
public int HistoryLevel { get; set; }
|
||||
|
||||
public string? RobotMessage { get; set; }
|
||||
|
||||
public string? EsppMessage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Статус. Что нужно было сделать роботу
|
||||
/// </summary>
|
||||
public int TaskStatusCode { get; set; }
|
||||
|
||||
public Guid RobotConfigurationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Уникальный идентификатор серии выполнения, нужен для сопоставления истории
|
||||
/// </summary>
|
||||
public Guid IdSeries { get; set; }
|
||||
|
||||
|
||||
[ForeignKey(nameof(HistoryLevel))]
|
||||
public RobotHistoryLevel? RobotHistoryLevel { get; set; }
|
||||
|
||||
[ForeignKey(nameof(RobotConfigurationId))]
|
||||
public RobotConfiguration? RobotConfiguration { get; set; }
|
||||
|
||||
[ForeignKey(nameof(TaskStatusCode))]
|
||||
public StatusTask? StatusTask { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -19,5 +19,9 @@ namespace PARR.DAL.Models
|
||||
|
||||
public ICollection<RobotTemplateHistory> robotTemplateHistories { get; set; } = new HashSet<RobotTemplateHistory>();
|
||||
|
||||
public ICollection<RobotHistory> RobotHistories { get; set; } = new HashSet<RobotHistory>();
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,6 +41,6 @@ namespace PARR.DAL.Models
|
||||
public Template? Template { get; set; }
|
||||
|
||||
[ForeignKey(nameof(TemplateStatusCode))]
|
||||
public StatusTemplate? StatusTemplate { get; set; }
|
||||
public StatusTask? StatusTemplate { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace PARR.DAL.Models
|
||||
/// Статус шаблона. Что нужно сделать роботу в ЕСПП
|
||||
/// </summary>
|
||||
[Table("StatusTemplates")]
|
||||
public class StatusTemplate
|
||||
public class StatusTask
|
||||
{
|
||||
[Key]
|
||||
public int Code { get; set; }
|
||||
@@ -42,7 +42,7 @@ namespace PARR.DAL.Models
|
||||
|
||||
|
||||
[ForeignKey(nameof(StatusCode))]
|
||||
public StatusTemplate? StatusTemplate { get; set; }
|
||||
public StatusTask? StatusTask { get; set; }
|
||||
|
||||
|
||||
public Guid ApplicationInWorkId { get; set; }
|
||||
@@ -62,5 +62,7 @@ namespace PARR.DAL.Models
|
||||
|
||||
public ICollection<RobotTemplateHistory> RobotTemplateHistories { get; set; } = new HashSet<RobotTemplateHistory>();
|
||||
|
||||
public ICollection<RobotConfiguration> RobotConfigurations { get; set; } = new HashSet<RobotConfiguration>();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user