<?php
// ============================================================
// Response Helper — JSON output with HTTP status codes
// ============================================================

class Response {

    public static function json(array $data, int $status = 200): void {
        http_response_code($status);
        echo json_encode($data, JSON_UNESCAPED_UNICODE);
        exit;
    }

    public static function success(string $message, array $extra = [], int $status = 200): void {
        self::json(array_merge(['success' => true, 'message' => $message], $extra), $status);
    }

    public static function error(string $message, int $status = 400, array $extra = []): void {
        self::json(array_merge(['success' => false, 'message' => $message], $extra), $status);
    }

    public static function unauthorized(string $message = 'Unauthorized. Please login.', string $code = 'UNAUTHORIZED'): void {
        self::json(['success' => false, 'message' => $message, 'code' => $code], 401);
    }

    public static function forbidden(string $message = 'Access denied.', string $code = 'FORBIDDEN'): void {
        self::json(['success' => false, 'message' => $message, 'code' => $code], 403);
    }
}
