<?php

return [
    'enabled' => (bool) env('GRAPH_ENABLED', (bool) (env('GRAPH_CLIENT_ID') && env('GRAPH_CLIENT_SECRET') && env('GRAPH_TENANT_ID'))),

    'tenant_id' => env('GRAPH_TENANT_ID', ''),
    'client_id' => env('GRAPH_CLIENT_ID', ''),
    'client_secret' => env('GRAPH_CLIENT_SECRET', ''),
    'scope' => env('GRAPH_SCOPE') ?: 'https://graph.microsoft.com/.default',

    'base_url' => env('GRAPH_BASE_URL', 'https://graph.microsoft.com'),
    'version' => env('GRAPH_VERSION', 'beta'),

    'token_url' => env('GRAPH_TOKEN_URL', 'https://login.microsoftonline.com/%s/oauth2/v2.0/token'),

    'timeout' => (int) env('GRAPH_TIMEOUT', 10),

    'retry' => [
        'times' => (int) env('GRAPH_RETRY_TIMES', 2),
        'sleep' => (int) env('GRAPH_RETRY_SLEEP', 200), // milliseconds
    ],

    // When true (default in local), BackupService will fall back to stub payloads
    // instead of failing the backup entirely if Graph returns an error.
    'stub_on_failure' => (bool) env('GRAPH_STUB_ON_FAILURE', env('APP_ENV') === 'local'),
];
