feat(tickets): allow custom status key in status create/edit

- Validate status_key (^[a-z][a-z0-9_]{1,23}$, unique) on create/update
- Renaming a key moves aksrt_ticket.status in the same transaction
- Default statuses remain immutable

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Fable 5 committed 2026-10-27 23:22:38 +08:00
1 parent 8d871c0828
commit 135fb4eaa4
4 files changed
+134 -7

No files matched your search

+2
View File
@@ -59,6 +59,7 @@ final class TicketRestAdmin {
'permission_callback' => [$this, 'require_admin'],
'args' => [
'name' => ['required' => true, 'sanitize_callback' => 'sanitize_text_field'],
'status_key' => ['required' => false, 'sanitize_callback' => 'sanitize_text_field'],
'color' => ['required' => false, 'sanitize_callback' => 'sanitize_text_field'],
'is_closed' => ['required' => false, 'sanitize_callback' => 'absint'],
],
@@ -71,6 +72,7 @@ final class TicketRestAdmin {
'permission_callback' => [$this, 'require_admin'],
'args' => [
'name' => ['required' => false, 'sanitize_callback' => 'sanitize_text_field'],
'status_key' => ['required' => false, 'sanitize_callback' => 'sanitize_text_field'],
'color' => ['required' => false, 'sanitize_callback' => 'sanitize_text_field'],
'is_closed' => ['required' => false, 'sanitize_callback' => 'absint'],
],