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
}