Add IAuditableEntity

This commit is contained in:
Patrick Barron
2021-08-13 20:35:31 -04:00
parent 60ce0c9fa9
commit 15baf04bd2
6 changed files with 388 additions and 137 deletions

View File

@@ -2,13 +2,14 @@ using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Globalization;
using Jellyfin.Data.Interfaces;
namespace Jellyfin.Data.Entities.Security
{
/// <summary>
/// An entity representing a device.
/// </summary>
public class Device
public class Device : IAuditableEntity
{
/// <summary>
/// Initializes a new instance of the <see cref="Device"/> class.
@@ -28,6 +29,7 @@ namespace Jellyfin.Data.Entities.Security
AccessToken = Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture);
DateCreated = DateTime.UtcNow;
DateModified = DateCreated;
DateLastActivity = DateCreated;
// Non-nullable for EF Core, as this is a required relationship.
@@ -83,11 +85,12 @@ namespace Jellyfin.Data.Entities.Security
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// Gets or sets the date this device was created.
/// </summary>
/// <inheritdoc />
public DateTime DateCreated { get; set; }
/// <inheritdoc />
public DateTime DateModified { get; set; }
/// <summary>
/// Gets or sets the date of last activity.
/// </summary>

View File

@@ -0,0 +1,20 @@
using System;
namespace Jellyfin.Data.Interfaces
{
/// <summary>
/// An interface representing an entity that has creation/modification dates.
/// </summary>
public interface IAuditableEntity
{
/// <summary>
/// Gets the date this entity was created.
/// </summary>
public DateTime DateCreated { get; }
/// <summary>
/// Gets or sets the date this entity was modified.
/// </summary>
public DateTime DateModified { get; set; }
}
}