using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace SkyArtShop.Models; public class Product { [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string? Id { get; set; } [Required] public string Name { get; set; } = string.Empty; public string Slug { get; set; } = string.Empty; public string SKU { get; set; } = string.Empty; public string ShortDescription { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; [Required] public decimal Price { get; set; } public string Category { get; set; } = string.Empty; public string Color { get; set; } = string.Empty; public List Colors { get; set; } = new List(); public List Variants { get; set; } = new List(); public string ImageUrl { get; set; } = string.Empty; public List Images { get; set; } = new List(); public bool IsFeatured { get; set; } public bool IsTopSeller { get; set; } public int StockQuantity { get; set; } public bool IsActive { get; set; } = true; public int UnitsSold { get; set; } public decimal TotalRevenue { get; set; } public double AverageRating { get; set; } public int TotalReviews { get; set; } public decimal CostPrice { get; set; } public List Tags { get; set; } = new List(); public string MetaDescription { get; set; } = string.Empty; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; }