Files
SkyArtShop/Models/Product.cs

67 lines
1.6 KiB
C#
Raw Normal View History

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<string> Colors { get; set; } = new List<string>();
public List<ProductVariant> Variants { get; set; } = new List<ProductVariant>();
public string ImageUrl { get; set; } = string.Empty;
public List<string> Images { get; set; } = new List<string>();
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<string> Tags { get; set; } = new List<string>();
public string MetaDescription { get; set; } = string.Empty;
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
}