docs(05-02): record plan close-out in STATE and ROADMAP
- Advance to plan 3 of 6 and mark DATA-04/05/07/09 complete
This commit is contained in:
@@ -39,12 +39,12 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
|
||||
- [x] **DATA-01**: GORM on Postgres through one shared *sql.DB (pgx stdlib) with a separate small pgx pool reserved for River's listener
|
||||
- [x] **DATA-02**: Each plugin ships a gormigrate migration set with up and down; sets run in plugin dependency order with per-plugin version tracking; AutoMigrate is never the schema source
|
||||
- [x] **DATA-03**: Models get timestamps, soft delete, and lifecycle hooks (beforeValidate, beforeCreate, beforeSave, beforeDelete, afterDelete) that can cascade soft deletes inside a transaction
|
||||
- [ ] **DATA-04**: Relations cover belongsTo, hasOne, hasMany and belongsToMany with ordered results and dedicated pivot models carrying business columns (CollectionEditor role/granted_at/granted_by, album_artists sort_order)
|
||||
- [ ] **DATA-05**: Model rule strings (required, between, unique:table, nullable, integer, in) are validated on save via go-playground/validator with translated messages and a 422 error map shaped like Laravel's
|
||||
- [x] **DATA-04**: Relations cover belongsTo, hasOne, hasMany and belongsToMany with ordered results and dedicated pivot models carrying business columns (CollectionEditor role/granted_at/granted_by, album_artists sort_order)
|
||||
- [x] **DATA-05**: Model rule strings (required, between, unique:table, nullable, integer, in) are validated on save via go-playground/validator with translated messages and a 422 error map shaped like Laravel's
|
||||
- [x] **DATA-06**: Mass assignment goes through per-endpoint request DTOs honoring each model's fillable allow-list; serialization honors a hidden deny-list with an explicit per-call override
|
||||
- [ ] **DATA-07**: Custom casts exist for jsonable columns, money as a fixed four-decimal string, and encrypted-at-rest secrets (AES-GCM, app-key derived) that are also hidden from serialization
|
||||
- [x] **DATA-07**: Custom casts exist for jsonable columns, money as a fixed four-decimal string, and encrypted-at-rest secrets (AES-GCM, app-key derived) that are also hidden from serialization
|
||||
- [ ] **DATA-08**: A polymorphic file attachment table (owner type, owner id, field, disk path, sort order, public/private) backs attachOne and attachMany, stored via gocloud.dev/blob with the same public URL shape
|
||||
- [ ] **DATA-09**: All 25 Płytarium models and their squashed migration set are ported with matching table names, columns, indexes and defaults (migration count is not itself an acceptance number — squashed per plan-time decision D-01 in 05-CONTEXT.md)
|
||||
- [x] **DATA-09**: All 25 Płytarium models and their squashed migration set are ported with matching table names, columns, indexes and defaults (migration count is not itself an acceptance number — squashed per plan-time decision D-01 in 05-CONTEXT.md)
|
||||
- [x] **DATA-10**: Paginated responses use the exact `{data, meta{current_page, last_page, per_page, total}}` envelope without a links key
|
||||
- [ ] **DATA-11**: Other plugins can hook a model's lifecycle through the GORM callback registry and extend its schema with a companion migration
|
||||
|
||||
@@ -175,12 +175,12 @@ Which phases cover which requirements. Updated during roadmap creation.
|
||||
| DATA-01 | Phase 3 | Complete |
|
||||
| DATA-02 | Phase 3 | Complete |
|
||||
| DATA-03 | Phase 5 | Complete |
|
||||
| DATA-04 | Phase 5 | Pending |
|
||||
| DATA-05 | Phase 5 | Pending |
|
||||
| DATA-04 | Phase 5 | Complete |
|
||||
| DATA-05 | Phase 5 | Complete |
|
||||
| DATA-06 | Phase 5 | Complete |
|
||||
| DATA-07 | Phase 5 | Pending |
|
||||
| DATA-07 | Phase 5 | Complete |
|
||||
| DATA-08 | Phase 5 | Pending |
|
||||
| DATA-09 | Phase 5 | Pending |
|
||||
| DATA-09 | Phase 5 | Complete |
|
||||
| DATA-10 | Phase 5 | Complete |
|
||||
| DATA-11 | Phase 5 | Pending |
|
||||
| HTTP-01 | Phase 3 | Complete |
|
||||
|
||||
Reference in New Issue
Block a user