using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Webshop.Domain.Entities; /// /// Zum Gruppieren und Organisieren von Produkten. /// public class Category { [Key] public Guid Id { get; set; } [Required] [MaxLength(255)] public string Name { get; set; } [MaxLength(1000)] public string? Description { get; set; } // Unique-Constraint wird typischerweise via Fluent API konfiguriert [Required] [MaxLength(255)] public string Slug { get; set; } [ForeignKey(nameof(ParentCategory))] public Guid? ParentCategoryId { get; set; } [MaxLength(2000)] public string? ImageUrl { get; set; } [Required] public bool IsActive { get; set; } [Required] public int DisplayOrder { get; set; } // Navigation Properties public virtual Category? ParentCategory { get; set; } public virtual ICollection SubCategories { get; set; } = new List(); public virtual ICollection ProductCategories { get; set; } = new List(); public virtual ICollection CategoryDiscounts { get; set; } = new List(); }