chippyash/record-status

View on GitHub
src/RStatus/RecordStatus.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * Record status management
 *
 * @author Ashley Kitson
 * @copyright Ashley Kitson, 2017, UK
 * @license GPL V3+ See LICENSE.md
 */
namespace Chippyash\RStatus;

use MyCLabs\Enum\Enum;

/**
 * Class RecordStatus
 *
 * What state is a record in?
 *
 * @method RecordStatus ACTIVE()
 * @method RecordStatus SUSPENDED()
 * @method RecordStatus DEFUNCT()
 */
final class RecordStatus extends Enum
{
    /**
     * Record is active
     */
    const ACTIVE = 'active';
    /**
     * Record is suspended
     */
    const SUSPENDED = 'suspended';
    /**
     * Record is defunct (no longer in use)
     */
    const DEFUNCT = 'defunct';

    /**
     * Can you change from one status to another
     *
     * Basically yes, except if this status == 'defunct'
     *
     * @return bool
     */
    public function canChange()
    {
        return !$this->equals(RecordStatus::DEFUNCT());
    }
}