using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.Extensions.Logging; namespace Jellyfin.Data.Entities { /// /// An entity referencing an activity log entry. /// public partial class ActivityLog : ISavingChanges { /// /// Initializes a new instance of the class. /// Public constructor with required data. /// /// The name. /// The type. /// The user id. public ActivityLog(string name, string type, Guid userId) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } if (string.IsNullOrEmpty(type)) { throw new ArgumentNullException(nameof(type)); } this.Name = name; this.Type = type; this.UserId = userId; this.DateCreated = DateTime.UtcNow; this.LogSeverity = LogLevel.Trace; Init(); } /// /// Initializes a new instance of the class. /// Default constructor. Protected due to required properties, but present because EF needs it. /// protected ActivityLog() { Init(); } /// /// Static create function (for use in LINQ queries, etc.) /// /// The name. /// The type. /// The user's id. /// The new instance. public static ActivityLog Create(string name, string type, Guid userId) { return new ActivityLog(name, type, userId); } /************************************************************************* * Properties *************************************************************************/ /// /// Gets or sets the identity of this instance. /// This is the key in the backing database. /// [Key] [Required] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; protected set; } /// /// Gets or sets the name. /// Required, Max length = 512. /// [Required] [MaxLength(512)] [StringLength(512)] public string Name { get; set; } /// /// Gets or sets the overview. /// Max length = 512. /// [MaxLength(512)] [StringLength(512)] public string Overview { get; set; } /// /// Gets or sets the short overview. /// Max length = 512. /// [MaxLength(512)] [StringLength(512)] public string ShortOverview { get; set; } /// /// Gets or sets the type. /// Required, Max length = 256. /// [Required] [MaxLength(256)] [StringLength(256)] public string Type { get; set; } /// /// Gets or sets the user id. /// Required. /// [Required] public Guid UserId { get; set; } /// /// Gets or sets the item id. /// Max length = 256. /// [MaxLength(256)] [StringLength(256)] public string ItemId { get; set; } /// /// Gets or sets the date created. This should be in UTC. /// Required. /// [Required] public DateTime DateCreated { get; set; } /// /// Gets or sets the log severity. Default is . /// Required. /// [Required] public LogLevel LogSeverity { get; set; } /// /// Gets or sets the row version. /// Required, ConcurrencyToken. /// [ConcurrencyCheck] [Required] public uint RowVersion { get; set; } partial void Init(); /// public void OnSavingChanges() { RowVersion++; } } }