using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Lagerbestand.Models; /// /// Type of catalog item /// public enum CatalogItemType { /// /// Tire category /// Reifen = 0, /// /// Rim/wheel category /// Felgen = 1 } public class CatalogItem { [Key] public Guid Id { get; set; } = Guid.NewGuid(); [Required] [MaxLength(200)] public string Name { get; set; } = string.Empty; [MaxLength(500)] public string? PictureFileName { get; set; } /// /// Size info - tire size for Reifen (e.g., "225/45 R17"), rim size for Felgen (e.g., "17 Zoll") /// [MaxLength(50)] public string TireSize { get; set; } = string.Empty; public TireSeason Season { get; set; } = TireSeason.Sommer; /// /// Category type (Reifen or Felgen) /// public CatalogItemType Type { get; set; } = CatalogItemType.Reifen; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? UpdatedAt { get; set; } /// /// Display label for the size field based on type /// [NotMapped] public string SizeLabel => Type == CatalogItemType.Felgen ? "Felgengröße" : "Reifengröße"; /// /// Display details string /// [NotMapped] public string DisplayDetails => Type == CatalogItemType.Felgen ? TireSize : $"{TireSize} | {Season}"; } public enum TireSeason { Sommer = 0, Winter = 1, Allrad = 2 }