@withpotter/members — module reference
HTTP routes this module mounts, plus its internal use-cases, entities, and repositories. The exhaustive request/response contract is the engine’s OpenAPI document at /docs; the layered structure below follows the package internal architecture.
HTTP routes
Members (Admin) /admin/members
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /admin/members | Yes | List members with filters |
GET | /admin/members/:id | Yes | Get member by ID |
GET | /admin/members/by-email/:email | Yes | Get member by email |
GET | /admin/members/export | Yes | Export members as CSV |
GET | /admin/members/top | Yes | Get top members by total spent |
POST | /admin/members | Yes | Create a new member (admin) |
POST | /admin/members/:id/addresses | Yes | Add address to member |
PUT | /admin/members/:id | Yes | Update member |
PATCH | /admin/members/:id/addresses/:addressId | Yes | Update member address |
PATCH | /admin/members/bulk | Yes | Bulk update members (status, tags) |
DELETE | /admin/members/:id | Yes | Delete member |
DELETE | /admin/members/:id/addresses/:addressId | Yes | Remove member address |
Internals
Use-cases
Application operations. Each is a single-purpose class with one execute() method.
| Use-case | Signature |
|---|---|
AddAddressUseCase | execute(tenantId: string, memberId: string, dto: AddAddressDto): Promise<MemberResponseDto> |
BulkUpdateMembersUseCase | execute(tenantId: string, dto: BulkUpdateMembersDto): Promise<{ updated: number }> |
CreateMemberUseCase | execute(tenantId: string, dto: CreateMemberDto): Promise<MemberResponseDto> |
DeleteMemberUseCase | execute(tenantId: string, memberId: string): Promise<void> |
GetMemberByEmailUseCase | execute(tenantId: string, email: string): Promise<MemberResponseDto> |
GetMemberUseCase | execute(tenantId: string, memberId: string): Promise<MemberResponseDto> |
GetTopMembersUseCase | execute(tenantId: string, limit: number = 10): Promise<MemberResponseDto[]> |
ListMembersUseCase | execute(tenantId: string, query: MemberQueryDto): Promise<PaginatedMembersResponseDto> |
RemoveAddressUseCase | execute(tenantId: string, memberId: string, addressId: string): Promise<MemberResponseDto> |
UpdateAddressUseCase | execute(tenantId: string, memberId: string, addressId: string, dto: UpdateAddressDto): Promise<MemberResponseDto> |
UpdateMemberUseCase | execute(tenantId: string, memberId: string, dto: UpdateMemberDto): Promise<MemberResponseDto> |
Entities
Sequelize models owned by this module.
Member — table members
| Field | Type |
|---|---|
id | string |
tenantId | string |
tenant | Tenant |
email | string |
phone | string | null |
name | string | null |
type | CustomerType |
source | CustomerSource | null |
status | CustomerStatus |
passwordHash | string | null |
emailVerified | boolean |
passwordResetToken | string | null |
passwordResetExpires | Date | null |
avatar | { url: string |
addresses | MemberAddress[] |
acceptsMarketing | boolean |
tags | string[] |
notes | CustomerNote[] |
totalOrders | number |
totalSpent | number |
data | Record<string, unknown> |
createdAt | Date |
updatedAt | Date |
lastOrderAt | Date | null |
lastLoginAt | Date | null |
lastActivityAt | Date | null |
convertedAt | Date | null |
Repositories
Data-access classes wrapping the entities.
MemberRepository
findById · findByEmail · findWithFilters · findTopMembers · create · update · delete · setPassword · verifyPassword · setEmailVerified · updateLastLogin · setPasswordResetToken · findByPasswordResetToken · clearPasswordResetToken · addAddress · updateAddress · removeAddress · incrementOrderStats · incrementSpending · getCount · getCountByType · resolveForCheckout · bulkUpdateStatus · upgradeType
Generated from the module’s source. Routes are relative to the engine root
(default http://localhost:3001). For full request/response schemas use the live
OpenAPI document.