Files
CMS/src/CMSMicroservice.Application/PackageCQ/Queries/GetCustomerPackageDetails/GetCustomerPackageDetailsResponseDto.cs
T
masoodafar-web ccb938e9ba Phase 3: Package layer overhaul — fix critical bugs + proto enhancement
Proto (package.proto):
- Add 11 new Package fields to Create/Update/Get/GetAll messages
- Add 8 new fields to CustomerPackageModel for frontend

Critical Bug Fixes:
- VerifyGoldenPackagePurchase: Replace hardcoded ×2 with package.DiscountMultiplier from DB

Query Fixes:
- GetAllPackageByFilter: Add IsDeleted filter (was returning soft-deleted packages)
- GetCustomerPackages: Apply IsDeleted+IncludeInactive filters, sort by SortOrder, return new fields
- GetCustomerPackageDetails: Load PackageFeatures from DB (was hardcoded), add IsDeleted filter, return new fields
- GetCustomerPurchaseHistory: Include Transaction (was null → ReferenceCode always empty)

UpdatePackage: Add 12 new fields (SortOrder, IsActive, IsBasePackage, etc.)

Build: 0 errors
2026-02-25 23:50:09 +03:30

37 lines
1.3 KiB
C#

namespace CMSMicroservice.Application.PackageCQ.Queries.GetCustomerPackageDetails;
public class GetCustomerPackageDetailsResponseDto
{
public long Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public long Price { get; set; }
public string ImagePath { get; set; }
public List<PackageFeatureDto> Features { get; set; } = new();
public PurchaseRequirementsDto Requirements { get; set; }
// New package-based fields
public long ActivationFee { get; set; }
public double DiscountMultiplier { get; set; }
public double MagicWalletMultiplier { get; set; }
public long MagicWalletMaxDeposit { get; set; }
public long MagicWalletMaxCredit { get; set; }
public bool IsBasePackage { get; set; }
public bool SupportsDayaPurchase { get; set; }
public bool SupportsDirectPurchase { get; set; }
}
public class PackageFeatureDto
{
public string Title { get; set; }
public string Description { get; set; }
public string Icon { get; set; }
public bool IsHighlighted { get; set; }
}
public class PurchaseRequirementsDto
{
public bool RequiresMembership { get; set; }
public long MinimumWalletBalance { get; set; }
public List<string> Restrictions { get; set; } = new();
}