40 lines
1.0 KiB
PHP
40 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Database\Factories\BoardColumnFactory;
|
|
use Illuminate\Database\Eloquent\Attributes\Fillable;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
|
|
|
|
#[Fillable(['name', 'position', 'project_id'])]
|
|
class BoardColumn extends Model
|
|
{
|
|
/** @use HasFactory<BoardColumnFactory> */
|
|
use HasFactory;
|
|
|
|
public function project(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Project::class);
|
|
}
|
|
|
|
public function ticketStatuses(): HasMany
|
|
{
|
|
return $this->hasMany(TicketStatus::class)
|
|
->orderBy('position');
|
|
}
|
|
|
|
public function tickets(): HasManyThrough
|
|
{
|
|
return $this->hasManyThrough(
|
|
Ticket::class,
|
|
TicketStatus::class,
|
|
'board_column_id',
|
|
'ticket_status_id',
|
|
)->orderByDesc('tickets.sequence_number');
|
|
}
|
|
}
|