Parent
Part of #178
What to build
When an authorized actor toggles member_projects.selected, apply the D1 plan: update selected, then unpublish or republish the matched personal projects row (status only — no hard-delete, no auto-create). Revalidate public projects after a status change. Prefer a server action (or equivalent server write) over browser-only Supabase update so authz + sync stay atomic from the caller's perspective. Update selector UI copy to note that toggling also affects ผลงาน. First select with no projects row remains profile-only (admin from-members still imports).
Acceptance criteria
Blocked by
Parent
Part of #178
What to build
When an authorized actor toggles
member_projects.selected, apply the D1 plan: updateselected, then unpublish or republish the matched personalprojectsrow (status only — no hard-delete, no auto-create). Revalidate public projects after a status change. Prefer a server action (or equivalent server write) over browser-only Supabase update so authz + sync stay atomic from the caller's perspective. Update selector UI copy to note that toggling also affects ผลงาน. First select with no projects row remains profile-only (admin from-members still imports).Acceptance criteria
Blocked by