Commit graph

178 commits

Author SHA1 Message Date
e8f44c839a Refactor household models and repository queries to use dynamic column selection; remove email from invitation schema in OpenAPI 2025-12-13 14:52:52 +11:00
3e4e4fc2ae Remove email from invites 2025-11-05 20:27:59 +11:00
3782477dda households api cleanup 2025-11-05 20:24:47 +11:00
c71863b7bf URI fixes 2025-11-05 20:07:55 +11:00
585f944390 Scraping tests pass 2025-11-05 19:58:08 +11:00
2960eff187 scraping improvements 2025-11-04 18:31:13 +11:00
98b87145a7 Zoomer readme and spec removal 2025-11-02 21:41:21 +11:00
126ed0572c phase complete 2025-11-02 21:33:23 +11:00
fb90a4ad32 Spec update - final sprint 2025-11-02 21:17:53 +11:00
7b7daa1c3c Update error handling for recipe parsing failures to return 422 status code 2025-11-02 19:46:37 +11:00
e801c9056d autoformat 2025-11-02 18:55:55 +11:00
14bdcbb202 load recipe ingredients 2025-11-02 18:54:04 +11:00
ec9fbc071d Disallow empty ingredients 2025-11-02 18:14:03 +11:00
a8f1050af9 No empty ingredients 2025-11-02 18:10:27 +11:00
8a4616fb13 autoformat 2025-11-02 17:51:10 +11:00
83388b2925 Meal request requires user 2025-11-02 17:51:02 +11:00
b7a737ddaa Meal validation improvements 2025-11-02 17:45:12 +11:00
ca735865fc db.create() initializes all v2 tables, including users and households, and tenant tables already include household_id columns and indices by default. No separate migration script is required for fresh databases used by tests. 2025-11-02 00:19:45 +11:00
854b924a28 feat(api): scope ingredient parse to household and align recipe parse-from-url with RecipeCreate 2025-11-01 23:39:14 +11:00
29ebbe7a37 Added missing methods and return types 2025-11-01 23:36:46 +11:00
5c70a9faf0 Parsing 2025-11-01 23:05:16 +11:00
7741df79e9 Added the missing ingredient parsing API to reach feature parity, updated the spec, and validated with full checks: build PASS, lint/typecheck PASS, tests PASS. 2025-11-01 22:58:44 +11:00
e751b828fe Add tests for scoped DELETE current ingredient and recipes parse-from-url 2025-11-01 22:47:48 +11:00
5618b6800e Shopping/Recipes: add scoped DELETE for ad-hoc ingredient requests and “parse-from-url” 2025-11-01 22:41:39 +11:00
964072391e persons removed 2025-11-01 22:35:10 +11:00
7b82cca5e3 Seed Users from legacy Persons for tests; remove Person fallback in meals; fix migration memberships; add indices; remove cookie helpers; spec updated 2025-11-01 21:37:35 +11:00
d41c09d1a3 Remove cookie auth helpers, clean Person-based recipe function; add indices and test seeding helper; spec updated 2025-11-01 21:28:50 +11:00
0ba9634131 Remove legacy cookie auth and Person-based recipe helper; add composite indices; spec updated 2025-11-01 21:25:18 +11:00
93b9869735 Remove legacy cookie auth and Person-based recipe helper; spec updated 2025-11-01 21:21:53 +11:00
42715c9fa6 Consolidate recipes API to canonical router; remove api/recipes_v2.py; spec updated 2025-11-01 20:26:17 +11:00
8ee5642690 Removed v2 recipe file 2025-11-01 20:23:03 +11:00
bd7a87c3ff feat: refactor user references to MemberRef across meals and recipes; update OpenAPI spec and backend documentation 2025-11-01 19:58:33 +11:00
52b4973175 test(auth, routing): add logout semantics and route-surface lockdown tests; update spec 2025-11-01 19:23:26 +11:00
9504c9cb34 feat(auth, invitations): switch to Argon2-only password hashing; return household on invitation accept; remove legacy cookie-based export; update OpenAPI wording and spec 2025-11-01 19:20:08 +11:00
32a7e6226f feat(shopping): dedupe ingredient requests per household and make household_id static in DDL 2025-11-01 19:07:44 +11:00
978c970fb6 feat(shopping): add household-scoped ingredient request endpoint + tests and spec 2025-11-01 18:50:40 +11:00
75d098cd7a Unnecessary import 2025-11-01 18:47:45 +11:00
76eeaba51c Shopping requests parity 2025-11-01 18:34:40 +11:00
c4e1293557 test_request_ingredient_scoped 2025-11-01 18:16:38 +11:00
e370ed50dc request ingredient 2025-11-01 18:07:13 +11:00
65d655851d feat: MemberRef adoption for recipes.createdBy and shopping.purchasedBy; add TDD; update spec; keep suite green 2025-11-01 17:53:07 +11:00
b324e1101c feat(recipes): include createdBy (MemberRef) and createdById in v2 responses; map from User; update tests and spec 2025-11-01 17:50:33 +11:00
06b81f0b2a Spec updates, remove email requirement 2025-11-01 17:41:09 +11:00
fc1f414bbb Spec updates 2025-11-01 17:32:45 +11:00
52b47769a6 Removed dead v2 files 2025-11-01 17:24:55 +11:00
584732e497 Cutover cleanup: inline meals/shopping v2 routers, neutralize legacy auth_v2 2025-11-01 17:24:15 +11:00
bd44a6acbe feat(api): finalize v2 cutover, add household members endpoint, consolidate DTOs, and enforce Argon2 hashing 2025-11-01 17:14:18 +11:00
a973e5ce57 Finalized v1→v2 switchover at the router level: removed legacy v1 endpoints from the app surface, delegated canonical imports to v2 implementations, consolidated shopping DTOs/mappers, and updated router tags. Verified with lint, mypy, tests, formatting, and OpenAPI export. Everything is green. 2025-11-01 17:11:09 +11:00
4e3b3a77dc sneaky file leftover 2025-11-01 17:08:21 +11:00
d093d1567e feat(meals+auth): remove Person from meals v2 DTOs (MemberRef) and adopt Argon2 hashing 2025-11-01 17:00:36 +11:00