74 lines
1.6 KiB
Markdown
74 lines
1.6 KiB
Markdown
# V1 Block 09 — Persistence Preparation
|
|
|
|
Status: Planned
|
|
|
|
Purpose: Prepare the domain layer for local persistence without overbuilding sync or database implementation too early.
|
|
|
|
## Chunk 9.1 — Repository interface
|
|
|
|
Recommended Codex level: medium
|
|
|
|
Tasks:
|
|
|
|
Define repository interfaces for:
|
|
|
|
- tasks
|
|
- projects
|
|
- locked blocks
|
|
- scheduling operations/state snapshots
|
|
|
|
Rules:
|
|
|
|
- Do not couple scheduling engine directly to SQLite.
|
|
- Use interfaces that a future Drift/SQLite layer can implement.
|
|
- Keep current implementation in-memory if needed.
|
|
|
|
Acceptance criteria:
|
|
|
|
- Domain services can depend on interfaces.
|
|
- Tests can use fake/in-memory repositories.
|
|
|
|
## Chunk 9.2 — Serialization-safe models
|
|
|
|
Recommended Codex level: high
|
|
|
|
Tasks:
|
|
|
|
Make models persistence-friendly:
|
|
|
|
- stable IDs
|
|
- enum serialization helpers or clear mapping plan
|
|
- DateTime handling convention
|
|
- nullable fields documented
|
|
- migration-safe field names where possible
|
|
|
|
Acceptance criteria:
|
|
|
|
- Models can round-trip through map/json-like structures or have a clear TODO for Drift mappings.
|
|
- Tests cover at least task serialization if implemented.
|
|
|
|
BREAKPOINT: Stop here. Confirm `high` mode before model serialization changes.
|
|
|
|
## Chunk 9.3 — Explicit non-sync boundary
|
|
|
|
Recommended Codex level: low
|
|
|
|
Tasks:
|
|
|
|
Document that V1 persistence is local-first and sync is out of scope.
|
|
|
|
Rules:
|
|
|
|
- No network sync code.
|
|
- No cloud assumptions.
|
|
- No background service implementation.
|
|
|
|
Acceptance criteria:
|
|
|
|
- README or architecture doc states sync is future work.
|
|
|
|
Commit suggestion:
|
|
|
|
```text
|
|
feat(data): prepare persistence interfaces for scheduling core
|
|
```
|