No description
Find a file
Tim Stollberg f0bb80707a feat(backend): commit uncommitted CustomField, dynamic HistoryType, and Import modules
Mirrors the frontend catch-up in 570f17e: a substantial amount of
finished-but-never-committed backend work had accumulated locally.

- New CustomField module: admin-managed field definitions per client,
  reorderable, typed values stored per client (backing the frontend's
  ClientCustomFieldCard + settings/fields page)
- History entries switch from a hardcoded type enum to a dynamic,
  admin-managed HistoryType module (reorderable, backing
  settings/history-types)
- New Import module: CSV client import (backing settings/import)
- Clients table gains soft deletes (deleted_at)
- Supporting factories, seeders, policies, and feature tests for all
  of the above

All 63 backend tests pass locally before this commit.
2026-07-18 16:34:18 +07:00
.claude chore: add Docker Compose dev environment 2026-06-23 15:26:59 +07:00
backend feat(backend): commit uncommitted CustomField, dynamic HistoryType, and Import modules 2026-07-18 16:34:18 +07:00
docker fix(docker): use host port 33307 for mysql to avoid local 3306 collision 2026-07-18 16:16:36 +07:00
frontend feat(frontend): commit uncommitted settings, custom fields, and import work 2026-07-18 16:27:19 +07:00
.env.example feat(frontend): scaffold Nuxt 3 CSR SPA with full auth + client/history UI 2026-06-23 17:33:39 +07:00
.gitignore chore: init repo with scaffold files 2026-06-23 15:50:10 +07:00
CLAUDE.md feat(frontend): scaffold Nuxt 3 CSR SPA with full auth + client/history UI 2026-06-23 17:33:39 +07:00
Makefile feat(docker): add production docker-compose for Coolify deployment 2026-07-18 14:59:06 +07:00