feat(dal): заготовка для хранения истории
This commit is contained in:
25
PARR.DAL/Models/Base/History/Base/IHistoryInitiator.cs
Normal file
25
PARR.DAL/Models/Base/History/Base/IHistoryInitiator.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using PARR.Constants;
|
||||
|
||||
namespace PARR.DAL.Models.Base.History.Base
|
||||
{
|
||||
/// <summary>
|
||||
/// Инициатор изменений, ведение истории
|
||||
/// </summary>
|
||||
public interface IHistoryInitiator
|
||||
{
|
||||
/// <summary>
|
||||
/// IP инициатора изменений (пользователь)
|
||||
/// </summary>
|
||||
public string? InitiatorIp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id инициатора компонента ПАРР
|
||||
/// </summary>
|
||||
public ParrComponentsEnum? InitiatorParrComponentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Комментарий от инициатора
|
||||
/// </summary>
|
||||
public string? InitiatorComment { get; set; }
|
||||
}
|
||||
}
|
||||
18
PARR.DAL/Models/Base/History/Base/IHistoryTable.cs
Normal file
18
PARR.DAL/Models/Base/History/Base/IHistoryTable.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
namespace PARR.DAL.Models.Base.History.Base
|
||||
{
|
||||
/// <summary>
|
||||
/// Таблица отслеживания изменений основной таблицы (таблица истории)
|
||||
/// </summary>
|
||||
public interface IHistoryTable : IBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Id записи в родительской таблице
|
||||
/// </summary>
|
||||
public Guid ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата добавления в историю
|
||||
/// </summary>
|
||||
public DateTimeOffset DateAddedToHistory { get; set; }
|
||||
}
|
||||
}
|
||||
9
PARR.DAL/Models/Base/History/Base/IMyHistory.cs
Normal file
9
PARR.DAL/Models/Base/History/Base/IMyHistory.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace PARR.DAL.Models.Base.History.Base
|
||||
{
|
||||
/// <summary>
|
||||
/// По этому интерфейсу определям, что хотим вести историю.
|
||||
/// В родительской таблице, по которой ведется история, указываются настройки истории.
|
||||
/// </summary>
|
||||
/// <typeparam name="HistoryTable">Таблица истории</typeparam>
|
||||
public interface IMyHistory<HistoryTable> where HistoryTable : class { }
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
namespace PARR.DAL.Models.Base
|
||||
namespace PARR.DAL.Models.Base.History
|
||||
{
|
||||
public interface ITemplateBase
|
||||
public interface ITemplateGeneralProps
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
public bool IsActiveTemplate { get; set; }
|
||||
|
||||
public bool IsActiveSchedule { get; set; }
|
||||
19
PARR.DAL/Models/ParrComponent.cs
Normal file
19
PARR.DAL/Models/ParrComponent.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.Constants;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.DAL.Models
|
||||
{
|
||||
[Table("ParrComponents")]
|
||||
[Index(nameof(Name), IsUnique = true)]
|
||||
public class ParrComponent
|
||||
{
|
||||
[Key]
|
||||
public ParrComponentsEnum Id { get; set; }
|
||||
|
||||
public required string Name { get; set; }
|
||||
|
||||
public required string Description { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.Models.Base;
|
||||
using PARR.DAL.Models.Base.History;
|
||||
using PARR.DAL.Models.Base.History.Base;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
@@ -7,7 +10,7 @@ namespace PARR.DAL.Models
|
||||
{
|
||||
[Table("Templates")]
|
||||
[Index(nameof(Name), IsUnique = true)]
|
||||
public class Template : IBase, ITemplateBase
|
||||
public class Template : IBase, ITemplateGeneralProps, IHistoryInitiator, IMyHistory<TemplateHistory>
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; }
|
||||
@@ -41,12 +44,19 @@ namespace PARR.DAL.Models
|
||||
|
||||
public DateTimeOffset? LastRun { get; set; }
|
||||
|
||||
|
||||
public DateTimeOffset NextRun { get; set; }
|
||||
|
||||
|
||||
public Guid ApplicationInWorkId { get; set; }
|
||||
|
||||
|
||||
#region Initiator
|
||||
public string? InitiatorIp { get; set; }
|
||||
|
||||
public ParrComponentsEnum? InitiatorParrComponentId { get; set; }
|
||||
|
||||
public string? InitiatorComment { get; set; }
|
||||
#endregion
|
||||
|
||||
[ForeignKey(nameof(ApplicationInWorkId))]
|
||||
public ApplicationsInWork? ApplicationsInWork { get; set; }
|
||||
|
||||
@@ -62,6 +72,8 @@ namespace PARR.DAL.Models
|
||||
|
||||
public ICollection<Order> Orders { get; set; } = new HashSet<Order>();
|
||||
|
||||
//public ICollection<TemplateHistory> TemplateHistories { get; set; } = new HashSet<TemplateHistory>();
|
||||
|
||||
|
||||
public ICollection<TemplateHistory> TemplateHistories { get; set; } = new HashSet<TemplateHistory>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,36 @@
|
||||
using PARR.DAL.Models.Base;
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.Models.Base;
|
||||
using PARR.DAL.Models.Base.History;
|
||||
using PARR.DAL.Models.Base.History.Base;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace PARR.DAL.Models
|
||||
{
|
||||
[Table("TemplateHistories")]
|
||||
public class TemplateHistory : IBase, ITemplateBase
|
||||
public class TemplateHistory : IBase, ITemplateGeneralProps, IHistoryInitiator, IHistoryTable
|
||||
{
|
||||
//!!! Не используется !!!
|
||||
|
||||
|
||||
[Key]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
|
||||
public Guid ParentId { get; set; }
|
||||
|
||||
public DateTimeOffset DateAddedToHistory { get; set; }
|
||||
|
||||
public string? InitiatorIp { get; set; }
|
||||
|
||||
public ParrComponentsEnum? InitiatorParrComponentId { get; set; }
|
||||
|
||||
public string? InitiatorComment { get; set; }
|
||||
|
||||
|
||||
[NotMapped]
|
||||
public DateTimeOffset DateCreated { get; set; }
|
||||
|
||||
public DateTimeOffset? DateModified { get; set; }
|
||||
|
||||
public Guid TemplateId { get; set; }
|
||||
public required string Name { get; set; }
|
||||
|
||||
public bool IsActiveTemplate { get; set; }
|
||||
|
||||
@@ -28,8 +40,9 @@ namespace PARR.DAL.Models
|
||||
|
||||
public DateTimeOffset NextRun { get; set; }
|
||||
|
||||
//[ForeignKey(nameof(TemplateId))]
|
||||
//public Template? Template { get; set; }
|
||||
|
||||
[ForeignKey(nameof(ParentId))]
|
||||
public Template? Template { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user