<?php

namespace App\Services;

use Illuminate\Support\Facades\Log;

class SessionService
{

    public static function storeApiToken(string $token): void
    {
        Log::channel('kedebah_api')->info('Storing Bearer token:', ['bearer_token' => $token]);
        session()->put('bearer_token', $token);
    }

    public static function getApiToken(): string|null
    {
        $token = session()->get('bearer_token');
        Log::channel('kedebah_api')->info('Retrieving Bearer token:', ['bearer_token' => $token]);
        return $token;
    }

    public static function storeApiTokenExpiry(bool $tokenHasExpired): void
    {
        Log::channel('kedebah_api')->info('Storing Bearer token EXPIRY:', ['bearer_token_expired' => $tokenHasExpired]);
        session()->put('bearer_token_expired', $tokenHasExpired);
    }

    public static function apiTokenHasExpired(): bool|null
    {
        $tokenHasExpired = session()->get('bearer_token_expired') ?: false;
        Log::channel('kedebah_api')->info('Retrieving Bearer token EXPIRY:', ['bearer_token_expired' => $tokenHasExpired]);
        return $tokenHasExpired;
    }

    public static function flashApiMessage(string $message): void
    {
        Log::channel('kedebah_api')->info('Flashing API message:', ['api_message' => $message]);
        session()->flash('api_message', $message);
    }

    public static function getApiMessage(): string|null
    {
        $message = session()->get('api_message');
        Log::channel('kedebah_api')->info('Retrieving API message:', ['api_message' => $message]);
        return $message;
    }


    public static function storeTenantId(string $tenant): void
    {
        Log::channel('kedebah_api')->info('Storing Tenant ID:', ['tenant_id' => $tenant]);
        session()->put('tenant_id', $tenant);
    }

    public static function getTenantId(): string|null
    {
        $tenantId = session()->get('tenant_id');
        Log::channel('kedebah_api')->info('Retrieving Tenant ID:', ['tenant_id' => $tenantId]);
        return $tenantId;
    }

}
