<?php
/**
 * [1.6.118.4] ENDPOINT SYSTEM POLICIES
 *
 * GET /system/policies (público — sem auth)
 *
 * Devolve as policies/regras activas do sistema que o app/site precisa
 * de mostrar ao user de forma actualizada. Hoje só tem first_deposit
 * expiry, mas no futuro pode crescer (subscription policies, trial
 * periods, etc.).
 *
 * Response shape:
 * {
 *   success: true,
 *   data: {
 *     first_deposit: {
 *       enforcement_enabled: false,        // CRON está ON?
 *       grace_hours: 24,                   // janela visível ao user
 *       what_happens_if_unpaid: "..."      // texto pronto para UI
 *     }
 *   }
 * }
 *
 * @package 1MZ_For_Artists
 * @since 1.6.118.4
 */

if ( ! defined( 'ABSPATH' ) ) exit;


add_action( 'rest_api_init', 'rmbz_system_policies_register_routes' );

function rmbz_system_policies_register_routes() {
    register_rest_route( RMBZ_API_NAMESPACE, '/system/policies', [
        'methods'             => 'GET',
        'callback'            => 'rmbz_system_policies_get',
        // Endpoint público — info não-sensível, app precisa antes de login
        'permission_callback' => '__return_true',
    ] );
}


/**
 * Callback do endpoint.
 */
function rmbz_system_policies_get( $request ) {
    // Estado do CRON de first deposit
    $enforcement_enabled = (bool) get_option( 'rmbz_expiry_cron_enabled', false );

    // Texto pronto para a UI mostrar (PT-PT)
    // App escolhe entre "_enforced" e "_lenient" baseado em enforcement_enabled
    $msg_enforced = '⚠ Se não recebermos a confirmação do pagamento em 24h, '
                  . 'a conta será automaticamente apagada e terás de te registar de novo.';

    $msg_lenient  = 'A nossa equipa valida o pagamento em até 24h.';

    $data = [
        'first_deposit' => [
            'enforcement_enabled'    => $enforcement_enabled,
            'grace_hours'            => 24,
            'message_enforced'       => $msg_enforced,
            'message_lenient'        => $msg_lenient,
            // Conveniência: texto a mostrar consoante o estado
            'message_active'         => $enforcement_enabled ? $msg_enforced : $msg_lenient,
        ],
    ];

    if ( function_exists( 'rmbz_api_ok' ) ) {
        return rmbz_api_ok( $data );
    }
    return new WP_REST_Response( [ 'success' => true, 'data' => $data, 'error' => null ], 200 );
}
