fiddy/docs/app_dev_plan/08_spendings_crud.md
2026-02-11 23:45:15 -08:00

43 lines
1.0 KiB
Markdown

# Entries CRUD Plan
## Focus
Implement entry CRUD (list/create/update/delete) scoped to active group. Ensure list endpoints never return receipt bytes.
## Goals
- Create, read, update, delete entries for active group only.
- Enforce server-side membership/authorization.
- Keep receipt bytes out of list responses.
## Planned changes
### Backend
Routes:
- `GET /api/entries` (list for active group)
- `POST /api/entries` (create)
- `PATCH /api/entries/:id` (update)
- `DELETE /api/entries/:id` (delete)
Helpers:
- `requireActiveGroup(userId)`
- `requireGroupMember(userId, groupId)`
### Frontend
- Basic entries list + create form on dashboard.
### Tests
- API tests for create/list/update/delete with group scoping.
## Files impacted
- `apps/web/app/api/entries/*`
- `apps/web/lib/server/entries.ts`
- `apps/web/lib/client/entries.ts`
- `apps/web/hooks/use-entries.ts`
- `apps/web/components/entries-panel.tsx`
- `apps/web/app/page.tsx`
- `apps/web/__tests__/entries.test.ts`
## Status
- Implemented
## Test output
- `entries CRUD`