<?php

namespace Functional\Tracking\Enums;

/**
 * Statut d'une séance d'entraînement.
 * Stocké en base comme string ("no-db-enums") : le cast Eloquent fait le lien avec ce PHP enum.
 */
enum WorkoutSessionStatus: string
{
    case Active = 'active';
    case Completed = 'completed';
    case Abandoned = 'abandoned';

    /** Une séance terminée (avec succès ou non) ne peut plus être modifiée. */
    public function isTerminal(): bool
    {
        return match ($this) {
            self::Completed, self::Abandoned => true,
            self::Active => false,
        };
    }
}
