From 456b1659870e20236ecc0853e4e37512aed9a2cd Mon Sep 17 00:00:00 2001 From: Koda Date: Tue, 19 May 2026 23:35:14 +0000 Subject: [PATCH] Rename acceptance criteria checklist helper to mapper --- app/Actions/Tickets/CreateProjectTicket.php | 6 +++--- ...hecklist.php => AcceptanceCriteriaChecklistMapper.php} | 2 +- app/Actions/Tickets/UpdateProjectTicket.php | 8 ++++---- app/Http/Requests/StoreProjectTicketRequest.php | 6 +++--- app/Http/Requests/UpdateProjectTicketRequest.php | 6 +++--- app/Http/Resources/TicketResource.php | 4 ++-- app/Mcp/Support/KanbanGitMcp.php | 4 ++-- tests/Feature/Projects/ProjectTicketControllerTest.php | 4 ++-- 8 files changed, 20 insertions(+), 20 deletions(-) rename app/Actions/Tickets/Support/{AcceptanceCriteriaChecklist.php => AcceptanceCriteriaChecklistMapper.php} (99%) diff --git a/app/Actions/Tickets/CreateProjectTicket.php b/app/Actions/Tickets/CreateProjectTicket.php index b8a768f..a2c26a5 100644 --- a/app/Actions/Tickets/CreateProjectTicket.php +++ b/app/Actions/Tickets/CreateProjectTicket.php @@ -4,7 +4,7 @@ namespace App\Actions\Tickets; use App\Actions\Notifications\BuildTicketCreatedPayload; use App\Actions\Notifications\TicketCreated; -use App\Actions\Tickets\Support\AcceptanceCriteriaChecklist; +use App\Actions\Tickets\Support\AcceptanceCriteriaChecklistMapper; use App\Enums\TicketWorklogEntryType; use App\Models\Project; use App\Models\Ticket; @@ -40,7 +40,7 @@ class CreateProjectTicket public function handle(Project $project, array $attributes, ?User $actor = null): Ticket { return DB::transaction(function () use ($actor, $attributes, $project): Ticket { - $acceptanceCriteria = AcceptanceCriteriaChecklist::normalize( + $acceptanceCriteria = AcceptanceCriteriaChecklistMapper::normalize( Arr::get($attributes, 'acceptance_criteria'), ); $nextSequenceNumber = (int) Ticket::query() @@ -64,7 +64,7 @@ class CreateProjectTicket 'story_points' => Arr::get($attributes, 'story_points'), ]); - AcceptanceCriteriaChecklist::syncTicket($ticket, $acceptanceCriteria); + AcceptanceCriteriaChecklistMapper::syncTicket($ticket, $acceptanceCriteria); $occurredAt = CarbonImmutable::now(); diff --git a/app/Actions/Tickets/Support/AcceptanceCriteriaChecklist.php b/app/Actions/Tickets/Support/AcceptanceCriteriaChecklistMapper.php similarity index 99% rename from app/Actions/Tickets/Support/AcceptanceCriteriaChecklist.php rename to app/Actions/Tickets/Support/AcceptanceCriteriaChecklistMapper.php index baf4652..0a9c40d 100644 --- a/app/Actions/Tickets/Support/AcceptanceCriteriaChecklist.php +++ b/app/Actions/Tickets/Support/AcceptanceCriteriaChecklistMapper.php @@ -7,7 +7,7 @@ use App\Models\Ticket; use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Support\Arr; -class AcceptanceCriteriaChecklist +class AcceptanceCriteriaChecklistMapper { public const MAX_INDENT_LEVEL = 8; diff --git a/app/Actions/Tickets/UpdateProjectTicket.php b/app/Actions/Tickets/UpdateProjectTicket.php index 4c9efa9..d4e8a2a 100644 --- a/app/Actions/Tickets/UpdateProjectTicket.php +++ b/app/Actions/Tickets/UpdateProjectTicket.php @@ -2,7 +2,7 @@ namespace App\Actions\Tickets; -use App\Actions\Tickets\Support\AcceptanceCriteriaChecklist; +use App\Actions\Tickets\Support\AcceptanceCriteriaChecklistMapper; use App\Enums\TicketWorklogEntryType; use App\Models\Ticket; use App\Models\TicketFieldDefinition; @@ -49,7 +49,7 @@ class UpdateProjectTicket array $validated, ): bool { $fieldValueAttributes = Arr::get($validated, 'field_values', []); - $nextAcceptanceCriteria = AcceptanceCriteriaChecklist::normalize( + $nextAcceptanceCriteria = AcceptanceCriteriaChecklistMapper::normalize( Arr::get($validated, 'acceptance_criteria'), ); $ticketAttributes = $this->buildTicketAttributes($ticket, $validated); @@ -86,7 +86,7 @@ class UpdateProjectTicket /** @var Collection $existingFieldValues */ $existingFieldValues = $ticket->fieldValues ->keyBy('ticket_field_definition_id'); - $currentAcceptanceCriteria = AcceptanceCriteriaChecklist::fromModels($ticket->acceptanceCriteria); + $currentAcceptanceCriteria = AcceptanceCriteriaChecklistMapper::fromModels($ticket->acceptanceCriteria); $changes = []; $summaryLabels = []; @@ -193,7 +193,7 @@ class UpdateProjectTicket } if ($currentAcceptanceCriteria !== $nextAcceptanceCriteria) { - AcceptanceCriteriaChecklist::syncTicket($ticket, $nextAcceptanceCriteria); + AcceptanceCriteriaChecklistMapper::syncTicket($ticket, $nextAcceptanceCriteria); } $fieldValueChangeSet = $this->syncProjectTicketFieldValues->handle( diff --git a/app/Http/Requests/StoreProjectTicketRequest.php b/app/Http/Requests/StoreProjectTicketRequest.php index d17e961..4f6aa82 100644 --- a/app/Http/Requests/StoreProjectTicketRequest.php +++ b/app/Http/Requests/StoreProjectTicketRequest.php @@ -2,7 +2,7 @@ namespace App\Http\Requests; -use App\Actions\Tickets\Support\AcceptanceCriteriaChecklist; +use App\Actions\Tickets\Support\AcceptanceCriteriaChecklistMapper; use App\Models\Project; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; @@ -30,7 +30,7 @@ class StoreProjectTicketRequest extends FormRequest } $this->merge([ - 'acceptance_criteria' => AcceptanceCriteriaChecklist::normalize( + 'acceptance_criteria' => AcceptanceCriteriaChecklistMapper::normalize( $acceptanceCriteria, ), ]); @@ -51,7 +51,7 @@ class StoreProjectTicketRequest extends FormRequest 'acceptance_criteria.*' => ['array'], 'acceptance_criteria.*.text' => ['required', 'string'], 'acceptance_criteria.*.checked' => ['required', 'boolean'], - 'acceptance_criteria.*.indent' => ['required', 'integer', 'min:0', 'max:'.AcceptanceCriteriaChecklist::MAX_INDENT_LEVEL], + 'acceptance_criteria.*.indent' => ['required', 'integer', 'min:0', 'max:'.AcceptanceCriteriaChecklistMapper::MAX_INDENT_LEVEL], 'assignee_user_id' => ['nullable', 'integer', Rule::exists('users', 'id')], 'description' => ['nullable', 'string'], 'ticket_priority_id' => [ diff --git a/app/Http/Requests/UpdateProjectTicketRequest.php b/app/Http/Requests/UpdateProjectTicketRequest.php index 81b814a..32f7290 100644 --- a/app/Http/Requests/UpdateProjectTicketRequest.php +++ b/app/Http/Requests/UpdateProjectTicketRequest.php @@ -3,7 +3,7 @@ namespace App\Http\Requests; use App\Actions\Permissions\PermissionService; -use App\Actions\Tickets\Support\AcceptanceCriteriaChecklist; +use App\Actions\Tickets\Support\AcceptanceCriteriaChecklistMapper; use App\Enums\Permission; use App\Models\Project; use App\Models\Ticket; @@ -36,7 +36,7 @@ class UpdateProjectTicketRequest extends FormRequest } $this->merge([ - 'acceptance_criteria' => AcceptanceCriteriaChecklist::normalize( + 'acceptance_criteria' => AcceptanceCriteriaChecklistMapper::normalize( $acceptanceCriteria, ), ]); @@ -57,7 +57,7 @@ class UpdateProjectTicketRequest extends FormRequest 'acceptance_criteria.*' => ['array'], 'acceptance_criteria.*.text' => ['required', 'string'], 'acceptance_criteria.*.checked' => ['required', 'boolean'], - 'acceptance_criteria.*.indent' => ['required', 'integer', 'min:0', 'max:'.AcceptanceCriteriaChecklist::MAX_INDENT_LEVEL], + 'acceptance_criteria.*.indent' => ['required', 'integer', 'min:0', 'max:'.AcceptanceCriteriaChecklistMapper::MAX_INDENT_LEVEL], 'assignee_user_id' => ['nullable', 'integer', Rule::exists('users', 'id')], 'author_user_id' => ['nullable', 'integer', Rule::exists('users', 'id')], 'blocked_comment' => ['nullable', 'string'], diff --git a/app/Http/Resources/TicketResource.php b/app/Http/Resources/TicketResource.php index 998fe0d..a10d8f3 100644 --- a/app/Http/Resources/TicketResource.php +++ b/app/Http/Resources/TicketResource.php @@ -2,7 +2,7 @@ namespace App\Http\Resources; -use App\Actions\Tickets\Support\AcceptanceCriteriaChecklist; +use App\Actions\Tickets\Support\AcceptanceCriteriaChecklistMapper; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; @@ -17,7 +17,7 @@ class TicketResource extends JsonResource { return [ 'id' => $this->id, - 'acceptance_criteria' => AcceptanceCriteriaChecklist::fromModels( + 'acceptance_criteria' => AcceptanceCriteriaChecklistMapper::fromModels( $this->relationLoaded('acceptanceCriteria') ? $this->acceptanceCriteria : $this->acceptanceCriteria()->get(), diff --git a/app/Mcp/Support/KanbanGitMcp.php b/app/Mcp/Support/KanbanGitMcp.php index 79b5dd4..c57cbd4 100644 --- a/app/Mcp/Support/KanbanGitMcp.php +++ b/app/Mcp/Support/KanbanGitMcp.php @@ -3,7 +3,7 @@ namespace App\Mcp\Support; use App\Actions\Permissions\PermissionService; -use App\Actions\Tickets\Support\AcceptanceCriteriaChecklist; +use App\Actions\Tickets\Support\AcceptanceCriteriaChecklistMapper; use App\Enums\Permission; use App\Http\Resources\ProjectResource; use App\Http\Resources\TicketResource; @@ -224,7 +224,7 @@ class KanbanGitMcp public function updatePayload(Ticket $ticket): array { return [ - 'acceptance_criteria' => AcceptanceCriteriaChecklist::fromModels( + 'acceptance_criteria' => AcceptanceCriteriaChecklistMapper::fromModels( $ticket->relationLoaded('acceptanceCriteria') ? $ticket->acceptanceCriteria : $ticket->acceptanceCriteria()->get(), diff --git a/tests/Feature/Projects/ProjectTicketControllerTest.php b/tests/Feature/Projects/ProjectTicketControllerTest.php index 2090949..3a35809 100644 --- a/tests/Feature/Projects/ProjectTicketControllerTest.php +++ b/tests/Feature/Projects/ProjectTicketControllerTest.php @@ -540,7 +540,7 @@ class ProjectTicketControllerTest extends TestCase $this->assertEquals( $updatedAcceptanceCriteria, - \App\Actions\Tickets\Support\AcceptanceCriteriaChecklist::fromModels($ticket->acceptanceCriteria), + \App\Actions\Tickets\Support\AcceptanceCriteriaChecklistMapper::fromModels($ticket->acceptanceCriteria), ); $this->assertDatabaseHas('acceptance_criteria', [ 'ticket_id' => $ticket->id, @@ -979,7 +979,7 @@ class ProjectTicketControllerTest extends TestCase private function updatePayload(Ticket $ticket, array $overrides = []): array { return array_merge([ - 'acceptance_criteria' => \App\Actions\Tickets\Support\AcceptanceCriteriaChecklist::fromModels( + 'acceptance_criteria' => \App\Actions\Tickets\Support\AcceptanceCriteriaChecklistMapper::fromModels( $ticket->acceptanceCriteria()->get(), ), 'assignee_user_id' => $ticket->assignee_user_id,