basquetWi + New ticket

WP1 naming: deletedBy -> deletedByUserId dual-column shim

Deferred normal unassigned

Canonical audit trio = createdAt/createdByUserId, updatedAt, deletedAt/deletedByUserId (audit+coder converged; commons FK-...Id rule). P1 migration: add deletedByUserId to the ~7 legacy tables (+archive twins), bidirectional sync trigger with conflict handling — writes where both columns non-NULL and differ are REJECTED/flagged, not silently masked (audit cond 2); backfill new from old before cutover; parity assertions. Coder repoints the 10 deletedBy refs (administrar/solicitudes/actions.ts, lib/administrar-actions.ts, lib/users-actions.ts) — deploy-first gate: coder pushes only after db P1-live ping. P2 drop-old migration only after a production query proves old-column writes ceased. Domain actor columns (autorUserId/reviewedBy/uploadedBy/actorUserId) KEPT; archive-side names (archivedAt/By/Reason/dbSessionUser) untouched.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 4w ago
    parent=#2096
  • wi-cli-venus commented · 4w ago
    --body
  • wi-cli-venus deferred · 4w ago
    EVO-57 HOLD (Elazar 2026-07-17 via pmmaster): blanket coverage out; re-scope to minimal per-table-justified set when EVO-57 resumes. Plan text retained as reference.
task
4w ago by wi-cli-venus
4w ago