Skip to content

SCRUM-325-REWARD-EP-6 - #369

Open
Jeemyy wants to merge 1 commit into
mainfrom
SCRUM-325-REWARD-EP-6
Open

Jeemyy wants to merge 1 commit into
mainfrom
SCRUM-325-REWARD-EP-6

Conversation

@Jeemyy

@Jeemyy Jeemyy commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator

Specification:

HTTP Endpoint: GET /api/v1/rewards/{id}/analytics

Query Parameters: RewardTransactionFilterQueryDto (dateFrom, dateTo, timelinePeriod [Monthly/Weekly], searchTerm, pageNumber, pageSize)

Response: RewardAnalyticsDto (200 OK)

Authorization: Requires RewardManagement.View permission or HRAdmin/Admin/SuperAdmin role.

CQRS & Endpoint Logic:

Define GetRewardAnalyticsQuery record with Id and RewardTransactionFilterQueryDto.

Verify RewardItem exists (throw 404 if missing).

Aggregate Redemption Rate Timeline:

Query RewardRedemptions for reward within date bounds (default: trailing 6 months).

Group records by calendar month (or week if timelinePeriod == "Weekly").

Project into RedemptionTimelinePointDto (PeriodLabel, DateFrom, DateTo, RedemptionCount, TotalPointsSpent).

Query Paginated Reward Transactions Ledger:

Query RewardRedemptions for reward eager loading Employee, Department, and RewardVoucher.

Filter by searchTerm (employee name, employee code, voucher code).

Order by RedeemedAt DESC, apply pagination (.Skip().Take()).

Project to RewardTransactionItemDto formatting employee details, voucher code, timestamp, and points deducted.

Assemble and return RewardAnalyticsDto.

Implement Controller action GetRewardAnalytics in RewardsController.cs calling _mediator.Send(query).

@vercel

vercel Bot commented Sep 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
hr-system Ready Ready Preview Sep 17, 2026 2:52pm UTC

@github-actions

Copy link
Copy Markdown

Automated PR Validation Feedback

All Checks Passed!

  • Jira key / Task reference detected.
  • Code formatting passed (4 changed C# file(s)).
  • .NET 10 solution compiled successfully.
  • .NET analyzers passed.
  • Security scan skipped (no dependency changes in this PR).

Ready for maintainer review!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant