-
Notifications
You must be signed in to change notification settings - Fork 134
Open
Labels
good first issueGood for newcomersGood for newcomers
Description
Location:
backend/src/users/enums/membership-status.enum.tsbackend/src/users/dto/member-query.dto.tsbackend/src/users/dto/update-member-status.dto.tsbackend/src/users/users.module.ts
Description
Before any members management endpoints can be built, the supporting types and data transfer objects need to be in place. This issue also introduces a MembershipStatus enum that represents whether a member's account is active, suspended, or pending — separate from the user's role. A dedicated MembersController needs to be scaffolded and registered alongside the existing UsersController.
Acceptance Criteria
- A
MembershipStatusenum is created atbackend/src/users/enums/membership-status.enum.tswith values:ACTIVE,SUSPENDED,PENDING - The
Userentity atbackend/src/users/entities/user.entity.tshas amembershipStatuscolumn added:@Column({ type: 'enum', enum: MembershipStatus, default: MembershipStatus.ACTIVE }) - A
MemberQueryDtois created atbackend/src/users/dto/member-query.dto.tswith optional fields:page?: number— default1limit?: number— default15search?: string— searchesfirstname,lastname, andemailrole?: UserRole— filters by rolestatus?: MembershipStatus— filters by membership status
- An
UpdateMemberStatusDtois created atbackend/src/users/dto/update-member-status.dto.tswith:action: 'suspend' | 'activate' | 'promote' | 'demote'— required, validated with@IsIn(['suspend', 'activate', 'promote', 'demote'])
- A
MembersControllerstub is created atbackend/src/users/members.controller.tswith the@Controller('members')decorator -
MembersControlleris registered inUsersModulealongside the existingUsersController -
npx tsc --noEmitpasses with no errors
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomers