Skip to content

feat: Locker management, package tracking, and referral program backend modules#1254

Open
demilade18-git wants to merge 1 commit into
DistinctCodes:mainfrom
demilade18-git:feature/demilade18-issues-1182-1183-1184-1185
Open

feat: Locker management, package tracking, and referral program backend modules#1254
demilade18-git wants to merge 1 commit into
DistinctCodes:mainfrom
demilade18-git:feature/demilade18-issues-1182-1183-1184-1185

Conversation

@demilade18-git

Copy link
Copy Markdown
Contributor

Summary

This PR implements four features assigned to Demilade18-git:

[BE-18] Locker Management: Backend (#1182)

  • New Locker entity: lockerNumber (unique), floor, size (SMALL/MEDIUM/LARGE), assignedToUserId (nullable FK), assignedAt, isActive, notes, soft-delete support
  • POST /lockers — create locker (admin only)
  • PATCH /lockers/:id — update locker details/status (admin only)
  • DELETE /lockers/:id — soft-delete (admin only; only if unassigned)
  • GET /lockers — list all lockers (admin/staff)
  • GET /lockers/mine — returns member's assigned locker or null
  • POST /lockers/:id/assign — assign locker to member (admin only)
  • POST /lockers/:id/unassign — release assignment (admin only)
  • LockersModule registered in AppModule

[FE-16] Locker Management: Frontend (#1183)

  • /lockers page showing prominent locker card (large locker number) when assigned, or "No locker assigned" message with Request a Locker CTA
  • useGetMyLocker React Query hook calling GET /lockers/mine
  • /lockers link added to DashboardSidebar navigation

[BE-16] Referral Program: Backend (#1184)

  • GET /referrals/my-code — returns current user's referral code, shareable link URL, and total referrals count
  • GET /referrals/history — paginated list of successful referrals (referee name, join date)
  • ReferralsModule registered in AppModule

[BE-17] Package / Mail Tracking: Backend (#1185)

  • New Package entity: recipientUserId, loggedByStaffId, courierName, trackingNumber, description, arrivedAt, collectedAt, status (ARRIVED/COLLECTED/RETURNED)
  • POST /packages — log package arrival (staff/admin only)
  • PATCH /packages/:id/collect — mark as collected (staff/admin)
  • PATCH /packages/:id/return — mark as returned to sender (staff/admin)
  • GET /packages/mine — member views their own packages
  • GET /packages — admin/staff views all packages (filterable by status)
  • PackagesModule registered in AppModule

Closes #1182
Closes #1183
Closes #1184
Closes #1185

…E-17), and referral program (BE-16)

Closes DistinctCodes#1182
Closes DistinctCodes#1183
Closes DistinctCodes#1184
Closes DistinctCodes#1185

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 27, 2026

Copy link
Copy Markdown

@demilade18-git is attempting to deploy a commit to the naijabuz's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jun 27, 2026

Copy link
Copy Markdown

@demilade18-git Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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

Labels

None yet

Projects

None yet

1 participant