feat(dal): Переделал модели для новой концепции управления роботами

This commit is contained in:
Mikhail Trubnikov
2023-10-05 12:28:31 +10:00
parent 10fe67a3bb
commit 4679994600
22 changed files with 2681 additions and 14 deletions

21
PARR.DAL/Models/Robot.cs Normal file
View 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>();
}
}

View 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>();
}
}

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

View File

@@ -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>();
}
}

View File

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

View File

@@ -7,7 +7,7 @@ namespace PARR.DAL.Models
/// Статус шаблона. Что нужно сделать роботу в ЕСПП
/// </summary>
[Table("StatusTemplates")]
public class StatusTemplate
public class StatusTask
{
[Key]
public int Code { get; set; }

View File

@@ -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>();
}
}