feat: Add ClubMembershipCQ - Phase 3 Application Layer

- Implemented 3 Commands with handlers and validators:
  * ActivateClubMembership: Create/reactivate membership
  * DeactivateClubMembership: Deactivate existing membership
  * AssignClubFeature: Assign features to club members

- Implemented 3 Queries with handlers, validators, and DTOs:
  * GetClubMembership: Retrieve single membership by UserId
  * GetAllClubMemberships: List with filtering and pagination
  * GetClubMembershipHistory: Audit trail with full history

- All operations include history tracking via ClubMembershipHistory
- Property names aligned with Domain entity definitions
- 21 new files, ~600 lines of code
- Build successful with 0 errors
This commit is contained in:
masoodafar-web
2025-11-29 04:13:27 +03:30
parent fb911cd0fd
commit fe66d478ee
21 changed files with 732 additions and 0 deletions
@@ -0,0 +1,16 @@
namespace CMSMicroservice.Application.ClubMembershipCQ.Queries.GetClubMembership;
/// <summary>
/// DTO برای نمایش اطلاعات عضویت باشگاه
/// </summary>
public class ClubMembershipDto
{
public long Id { get; set; }
public long UserId { get; set; }
public bool IsActive { get; set; }
public DateTime? ActivatedAt { get; set; }
public long InitialContribution { get; set; }
public long TotalEarned { get; set; }
public DateTimeOffset Created { get; set; }
public DateTimeOffset? LastModified { get; set; }
}