Refactor acceptance criteria into model
linter / quality (pull_request) Successful in 1m14s
tests / ci (8.4) (pull_request) Successful in 1m28s

This commit is contained in:
2026-05-19 22:20:15 +00:00
parent 3ddfcc89f9
commit 7805bd057e
10 changed files with 217 additions and 72 deletions
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
#[Fillable([
'ticket_id',
'parent_acceptance_criterion_id',
'position',
'text',
'is_checked',
])]
class AcceptanceCriterion extends Model
{
/**
* @return array<string, string>
*/
protected function casts(): array
{
return [
'is_checked' => 'boolean',
];
}
public function children(): HasMany
{
return $this->hasMany(self::class, 'parent_acceptance_criterion_id')
->orderBy('position')
->orderBy('id');
}
public function parent(): BelongsTo
{
return $this->belongsTo(self::class, 'parent_acceptance_criterion_id');
}
public function ticket(): BelongsTo
{
return $this->belongsTo(Ticket::class);
}
}