<?php

namespace DarksLight2\Training;

use DarksLight2\Helpers\Str;
use User;

abstract class StepFactory
{
    abstract public function getTitle(): string;
    abstract public function getMessage(): string;
    abstract public function getRewards(): array;
    public function onLocations(): array
    {
        return ['all'];
    }

    public function getShortName(): string
    {
        return Str::snakeCase(get_class($this));
    }
    public function getAnswer()
    {
        return null;
    }

    public function allowedToMove(): array
    {
        return [];
    }

    public function isInfo(): bool
    {
        return true;
    }

    public function databaseRecord()
    {
        return [
            'completed' => false,
            'progress' => [
                'current' => 0,
                'need' => 1,
            ]
        ];
    }

}