//----------------------------------------------------------------------- // // Copyright (c) aliasvault. All rights reserved. // Licensed under the AGPLv3 license. See LICENSE.md file in the project root for full license information. // //----------------------------------------------------------------------- namespace AliasClientDb; using System.ComponentModel.DataAnnotations; using AliasClientDb.Abstracts; /// /// Logo entity for deduplicated logo storage. /// public class Logo : SyncableEntity { /// /// Gets or sets the logo ID. /// [Key] public Guid Id { get; set; } /// /// Gets or sets the source domain (e.g., 'github.com'). /// This is unique to ensure logos are deduplicated. /// [Required] [StringLength(255)] public string Source { get; set; } = string.Empty; /// /// Gets or sets the logo file data. /// public byte[]? FileData { get; set; } /// /// Gets or sets the MIME type of the logo. /// [StringLength(100)] public string? MimeType { get; set; } /// /// Gets or sets the timestamp when the logo was fetched. /// public DateTime? FetchedAt { get; set; } /// /// Gets or sets the items using this logo. /// public virtual ICollection Items { get; set; } = []; }