Add validators and services for Product Galleries and Product Tags

- Implemented Create, Delete, Get, and Update validators for Product Galleries.
- Added Create, Delete, Get, and Update validators for Product Tags.
- Created service classes for handling Discount Categories, Discount Orders, Discount Products, Discount Shopping Cart, Product Categories, Product Galleries, and Product Tags.
- Each service class integrates with CQRS for command and query handling.
- Established mapping profiles for Product Galleries.
This commit is contained in:
masoodafar-web
2025-12-04 02:40:49 +03:30
parent 40d54d08fc
commit f0f48118e7
436 changed files with 33159 additions and 2005 deletions
@@ -0,0 +1,75 @@
using CMSMicroservice.Domain.Enums;
namespace CMSMicroservice.Domain.Entities.Payment;
/// <summary>
/// پرداخت دستی توسط Admin/SuperAdmin
/// برای موارد خاص: واریز نقدی، تسویه حساب، اصلاح خطا
/// </summary>
public class ManualPayment : BaseAuditableEntity
{
/// <summary>
/// شناسه کاربری که پرداخت برای او ثبت می‌شود
/// </summary>
public long UserId { get; set; }
/// <summary>
/// User Navigation Property
/// </summary>
public virtual User User { get; set; } = null!;
/// <summary>
/// مبلغ تراکنش (ریال)
/// </summary>
public long Amount { get; set; }
/// <summary>
/// نوع تراکنش دستی
/// </summary>
public ManualPaymentType Type { get; set; }
/// <summary>
/// توضیحات (اجباری)
/// </summary>
public string Description { get; set; } = string.Empty;
/// <summary>
/// شماره مرجع یا شماره فیش (اختیاری)
/// </summary>
public string? ReferenceNumber { get; set; }
/// <summary>
/// وضعیت تایید
/// </summary>
public ManualPaymentStatus Status { get; set; } = ManualPaymentStatus.Pending;
/// <summary>
/// شناسه Admin که درخواست را ثبت کرده
/// </summary>
public long RequestedBy { get; set; }
/// <summary>
/// شناسه SuperAdmin که تایید/رد کرده (nullable)
/// </summary>
public long? ApprovedBy { get; set; }
/// <summary>
/// تاریخ تایید/رد
/// </summary>
public DateTime? ApprovedAt { get; set; }
/// <summary>
/// دلیل رد (در صورت رد شدن)
/// </summary>
public string? RejectionReason { get; set; }
/// <summary>
/// شناسه تراکنش ایجاد شده (بعد از تایید)
/// </summary>
public long? TransactionId { get; set; }
/// <summary>
/// Transaction Navigation Property
/// </summary>
public virtual Transaction? Transaction { get; set; }
}