Commit Graph

99 Commits

Author SHA1 Message Date
aferrer f32d55a7b0 feat(assets): add asset metadata views and enforce assignment transitions 2026-06-19 17:14:22 +02:00
aferrer c1763ed007 feat(assignments): support line-based returns and authenticated updates 2026-06-19 17:14:22 +02:00
aferrer 965a04a468 feat(items): adapt item flows to inventory schema defaults and SKU generation 2026-06-19 17:14:22 +02:00
aferrer 7b8a415c6a feat(people): align people, users, and categories with active inventory records 2026-06-19 17:14:22 +02:00
aferrer c123170a46 test(e2e): forbid focused Playwright tests in CI 2026-06-19 01:05:33 +02:00
aferrer 6d34a2f74f feat(inventory): support line-based assignments and movements 2026-06-19 01:05:33 +02:00
aferrer 8e6a00c2a9 feat(people): adapt person user flows to status model 2026-06-19 01:05:33 +02:00
aferrer 01d89cd21b feat(auth): align login and bootstrap with new user schema 2026-06-19 01:05:33 +02:00
aferrer 2ed9445f7f feat(db): reshape user and inventory schema 2026-06-19 01:05:33 +02:00
aferrer 1a95bf4613 docs: update README to reflect Person model and /people migration 2026-06-18 23:27:12 +02:00
aferrer fff5ce01e5 chore: add openspec and sdd to gitignore 2026-06-18 22:51:08 +02:00
aferrer fb5f3da7c1 feat: add quick-assign action from people list with person preselected 2026-06-18 22:46:35 +02:00
aferrer df02d24d79 refactor: remove obsolete admin/users files after /people migration 2026-06-18 22:45:39 +02:00
aferrer 92f83c708a refactor(i18n): update Spanish (es) locale strings for delivery note 2026-06-17 09:41:32 +02:00
aferrer d6b42d78e7 refactor: consolidate admin/users management under /people 2026-06-17 09:32:26 +02:00
aferrer 4f370eee70 refactor: move unified Person+User form to /people/new, admin-only 2026-06-17 08:51:23 +02:00
aferrer 1f5a849bf5 feat: unify Person and User creation form with conditional password 2026-06-16 21:48:59 +02:00
aferrer e5717461cf feat: add unified Person+User creation backend 2026-06-16 21:21:17 +02:00
aferrer 68c2983d36 refactor: remove username from User model, login by email only 2026-06-16 16:18:42 +02:00
aferrer caf19575c6 refactor: rename DB columns recipientId to personId 2026-06-16 13:37:58 +02:00
aferrer cf6820a7aa refactor: rename remaining recipient references to person/people 2026-06-16 13:34:15 +02:00
aferrer 29c7c19cd8 refactor: complete i18n rename recipients to people, finalize tests 2026-06-16 12:25:57 +02:00
aferrer ecc3cf1b55 refactor: rename recipients route to people, update all frontend references 2026-06-16 11:26:21 +02:00
aferrer d67f31cf54 refactor: rename Recipient to Person, remove username, add userId FK 2026-06-16 10:04:24 +02:00
aferrer befe1f3f82 fix(validation): replace deprecated Zod error flatten calls 2026-06-15 21:59:02 +02:00
aferrer 20552ba68b docs: document i18n architecture and localized surfaces 2026-06-15 17:04:36 +02:00
aferrer 73552dbb05 feat(i18n): localize admin users UI surfaces 2026-06-15 16:01:19 +02:00
aferrer 0cbbe60299 feat(i18n): localize admin users backbone 2026-06-15 15:35:08 +02:00
aferrer 349559f4e0 feat(i18n): localize assignment validation messages 2026-06-15 01:15:24 +02:00
aferrer bfea2b77ab feat(i18n): localize inventory assignments UI 2026-06-15 00:47:25 +02:00
aferrer 9b713c42e2 feat(i18n): localize recipient validation messages 2026-06-14 22:41:20 +02:00
aferrer c0ae7a034a feat(i18n): localize recipients UI 2026-06-14 18:33:57 +02:00
aferrer ea37fc8d70 test(i18n): cover movement page localization 2026-06-14 02:05:01 +02:00
aferrer f62cd6fb37 feat(i18n): localize movement UI 2026-06-14 01:20:23 +02:00
aferrer 7d5ab64653 feat(i18n): localize asset validation messages 2026-06-13 17:23:01 +02:00
aferrer 3d6b13dc1c feat(i18n): localize inventory assets UI 2026-06-13 17:07:51 +02:00
aferrer c67e86c91b feat(i18n): localize item validation messages 2026-06-13 11:28:28 +02:00
aferrer 964b1648ca feat(i18n): localize inventory items UI 2026-06-13 11:12:02 +02:00
aferrer 9f7d1b8ef8 feat(i18n): localize category action messages 2026-06-12 23:21:08 +02:00
aferrer e9a07eb28e feat(i18n): localize inventory categories UI 2026-06-12 23:01:33 +02:00
aferrer 589b042e7c feat(i18n): localize submit button states 2026-06-12 09:51:19 +02:00
aferrer 2fa6611719 feat(i18n): localize shell and common UI 2026-06-11 17:54:56 +02:00
aferrer c3cf4182ad feat(i18n): add language switcher 2026-06-11 16:16:06 +02:00
aferrer 18a192a069 chore: apply Biome cleanup 2026-06-11 04:56:01 +02:00
aferrer ac3dfe69cd feat(i18n): add locale dictionaries and pilot surfaces 2026-06-11 04:55:47 +02:00
aferrer 2c6d6bffcd docs: document testing setup 2026-06-07 16:56:33 +02:00
aferrer f2b9239d82 test: add initial unit integration and e2e coverage
Adds the initial testing baseline for the project:

   Unit coverage:
   - Zod schemas for items, assignments, movements, categories, auth, recipients, users, and assets
   - password hashing and verification helpers
   - auth role helper functions

   Integration coverage with PostgreSQL Testcontainers:
   - item use-cases: create, duplicate names, delete constraints
   - assignment use-cases: create, insufficient stock, return, double return
   - asset use-cases: available/assigned creation and lifecycle transitions
   - user use-cases: create/update, uniqueness, admin safeguards, password reset
   - category use-cases: create/update/delete constraints
   - recipient use-cases: create/update and uniqueness constraints

   E2E smoke coverage with Playwright:
   - unauthenticated redirect to login
   - seeded admin login
   - dashboard load
   - admin users page
   - inventory items page
   - assignments page

   Also configures:
   - Vitest
   - Playwright
   - PostgreSQL Testcontainers helpers
   - deterministic E2E admin bootstrap
   - test artifact ignores

   Validation:
   - bun run test: 9 files / 37 tests passed
   - bun run test:e2e: 3 passed
   - bunx tsc --noEmit: passed
   - bunx prisma validate: passed
2026-06-07 04:14:01 +02:00
aferrer cb01f4f8ef docs: update README for use-case architecture 2026-06-05 15:30:21 +02:00
aferrer bc5926a5de chore(prisma): fold item name unique index into init migration 2026-06-04 22:42:51 +02:00
aferrer 16a68e01ab Merge pull request #3 from refactor/use-cases-architecture
refactor: split actions into use cases and repositories
2026-06-04 20:31:43 +00:00