Simplify acceptance criteria checklist model
linter / quality (pull_request) Successful in 1m16s
tests / ci (8.4) (pull_request) Successful in 1m30s

This commit is contained in:
2026-05-19 22:44:28 +00:00
parent 7805bd057e
commit 689db9e41b
16 changed files with 140 additions and 363 deletions
+9 -12
View File
@@ -4,7 +4,7 @@ namespace App\Actions\Tickets;
use App\Actions\Notifications\BuildTicketCreatedPayload;
use App\Actions\Notifications\TicketCreated;
use App\Actions\Tickets\Support\TicketAcceptanceCriteriaData;
use App\Actions\Tickets\Support\AcceptanceCriteriaChecklist;
use App\Enums\TicketWorklogEntryType;
use App\Models\Project;
use App\Models\Ticket;
@@ -23,14 +23,11 @@ class CreateProjectTicket
/**
* @param array{
* acceptance_criteria: array{
* summary: string|null,
* items: array<int, array{
* checked: bool,
* indent: int,
* text: string
* }>
* },
* acceptance_criteria: array<int, array{
* checked: bool,
* indent: int,
* text: string
* }>,
* assignee_user_id?: int|null,
* description: string|null,
* story_points?: int|null,
@@ -43,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 = TicketAcceptanceCriteriaData::normalize(
$acceptanceCriteria = AcceptanceCriteriaChecklist::normalize(
Arr::get($attributes, 'acceptance_criteria'),
);
$nextSequenceNumber = (int) Ticket::query()
@@ -54,7 +51,7 @@ class CreateProjectTicket
->findOrFail(Arr::get($attributes, 'ticket_status_id'));
$ticket = Ticket::query()->create([
'acceptance_criteria' => TicketAcceptanceCriteriaData::toLegacyText($acceptanceCriteria),
'acceptance_criteria' => AcceptanceCriteriaChecklist::toText($acceptanceCriteria),
'assignee_user_id' => Arr::get($attributes, 'assignee_user_id'),
'author_user_id' => $actor?->id,
'description' => Arr::get($attributes, 'description'),
@@ -68,7 +65,7 @@ class CreateProjectTicket
'story_points' => Arr::get($attributes, 'story_points'),
]);
TicketAcceptanceCriteriaData::syncTicket($ticket, $acceptanceCriteria);
AcceptanceCriteriaChecklist::syncTicket($ticket, $acceptanceCriteria);
$occurredAt = CarbonImmutable::now();