feat: complete equipment handover workflow

This commit is contained in:
2026-08-04 17:15:51 +01:00
parent 809eab9d4a
commit d829f34580
24 changed files with 1800 additions and 28 deletions

View File

@@ -28,9 +28,11 @@ enum ReservationStatus: string
self::PendingApproval => [self::AwaitingInformation, self::Approved, self::Rejected, self::Cancelled, self::Expired],
self::AwaitingInformation => [self::PendingApproval, self::Rejected, self::Cancelled, self::Expired],
self::Approved => [self::Ready, self::Cancelled],
self::Ready => [self::Delivered, self::NoShow, self::Cancelled],
self::Ready => [self::Delivered, self::Incident, self::NoShow, self::Cancelled],
self::Delivered => [self::InUse, self::Returned, self::Overdue, self::Incident],
self::InUse, self::Overdue, self::Incident => [self::Returned],
self::InUse => [self::Returned, self::Overdue, self::Incident],
self::Overdue => [self::Returned, self::Incident],
self::Incident => [self::Delivered, self::Returned, self::Completed],
self::Returned => [self::Completed, self::Incident],
self::Completed, self::Rejected, self::Cancelled, self::Expired, self::NoShow => [],
};

View File

@@ -3,10 +3,12 @@
namespace App\Domain\Reservations\Models;
use App\Domain\Inventory\Models\SnipeAsset;
use App\Domain\Operations\Models\HandoverRecord;
use App\Domain\Reservations\Enums\ReservationItemStatus;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
/**
* @property ReservationItemStatus $status
@@ -44,4 +46,10 @@ class ReservationItem extends Model
{
return $this->belongsTo(SnipeAsset::class, 'snipe_asset_id');
}
/** @return HasMany<HandoverRecord, $this> */
public function handoverRecords(): HasMany
{
return $this->hasMany(HandoverRecord::class);
}
}