<?php
declare(strict_types=1);

namespace GamesShop\Environment;

use DotenvVault\DotenvVault;
use GamesShop\Paths;

final class EnvironmentHandler
{
    private const string ENVIRONMENT_PATH = Paths::ROOT_PATH . '/config';

    public function load() {
        $dotEnv = DotenvVault::createImmutable(
            self::ENVIRONMENT_PATH
        );

        $dotEnv->safeLoad();
    }

    public function getDiscordEnvironment(): DiscordEnvironment {
        return new DiscordEnvironment(
            $_SERVER['DISCORD_CLIENT_ID'],
            $_SERVER['DISCORD_CLIENT_SECRET'],
            $_SERVER['DISCORD_CLIENT_LOGIN_URI'],
        );
    }

    public function getDatabaseEnvironment(): DatabaseEnvironment
    {
        return new DatabaseEnvironment(
            $_SERVER['DB_DRIVER'],
            $_SERVER['DB_PATH']
        );
    }

    public function isProduction(): bool {
        return $_SERVER['PRODUCTION'] === 'true';
    }
}