Task: Implement Tips Stub API
Overview
Monetization beyond subscriptions is unmodeled. A tips stub records intent and amount without real payment processing so frontend tip modals can integrate.
Goals
- Entity:
Tip (fanId, creatorId, amountCents, currency, message?, status: pending|completed|failed, createdAt)
- Endpoints:
POST /api/v1/tips — fan tips creator
GET /api/v1/creators/me/tips?page&limit — creator inbox
GET /api/v1/tips/me — fan history
- Min/max amount validation; audit log on create
Deliverables
TipsModule, migration, DTOs, Swagger
- Audit integration
- Unit tests for validation and ownership
Acceptance Criteria
- Fan cannot tip self (
400)
- Tip to non-creator returns
404
- Amount outside range returns
400
- Creator/fan only see their own tip records
- All tips created with
status: pending (no real charge)
- At least 8 tests
Task: Implement Tips Stub API
Overview
Monetization beyond subscriptions is unmodeled. A tips stub records intent and amount without real payment processing so frontend tip modals can integrate.
Goals
Tip(fanId,creatorId,amountCents,currency,message?,status: pending|completed|failed,createdAt)POST /api/v1/tips— fan tips creatorGET /api/v1/creators/me/tips?page&limit— creator inboxGET /api/v1/tips/me— fan historyDeliverables
TipsModule, migration, DTOs, SwaggerAcceptance Criteria
400)404400status: pending(no real charge)