RewriteOptions inherit
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # ==========================================
    # 1. BẢO MẬT & CẤU HÌNH CƠ BẢN
    # ==========================================
    Options -Indexes

    # Đã xóa "|api" khỏi danh sách chặn để API Gateway hoạt động
    RewriteCond %{THE_REQUEST} \s/+(config|app|cron|client/layout/include|client/layout/partials)/ [NC]
    RewriteRule ^ - [F,L]
    
    RewriteRule ^\.env - [F,L,NC]
    RewriteRule (^|/)\.env($|/) - [F,L,NC]

    # ==========================================
    # 2. BỎ QUA FILE/THƯ MỤC CÓ THẬT
    # ==========================================
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    RewriteCond %{REQUEST_URI} !^/admin/?
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # ==========================================
    # 3. ĐỊNH TUYẾN KHO API NGẦM (API HANDLER)
    # ==========================================
    RewriteCond %{QUERY_STRING} action=bacarat_table_api
    RewriteRule ^api-handler/?$ api/games/bacarat_api.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=game_proxy_api
    RewriteRule ^api-handler/?$ api/games/proxy_api.php [QSA,L]

    RewriteCond %{QUERY_STRING} action=sicbo_api
    RewriteRule ^api-handler/?$ api/games/sicbo.php [QSA,L]
    
    RewriteCond %{QUERY_STRING} action=withdraw_commission
    RewriteRule ^api-handler/?$ app/invite/ajax/withdraw.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=save_settings
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_settings.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=update_balance
    RewriteRule ^api-handler/?$ app/admin/ajax/update_balance.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=manage_partner
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_partner.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=edit_user
    RewriteRule ^api-handler/?$ app/admin/ajax/edit_user.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=manage_package
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_package.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=manage_api_package
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_api_package.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=manage_product_stock
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_product_stock.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=manage_bank
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_bank.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=manage_card
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_card.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=(create_blog|update_blog|delete_blog)
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_blog.php [QSA,L]
    
    # Hỗ trợ test_api cho tính năng thêm Game
    RewriteCond %{QUERY_STRING} action=(save_game_multi_tool|delete_game|test_api)
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_game.php [QSA,L]
    
    RewriteCond %{QUERY_STRING} action=(save_product|delete_product)
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_product.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=(get_categories|save_category|delete_category)
    RewriteRule ^api-handler/?$ app/admin/ajax/manage_category.php [QSA,L]

    RewriteCond %{QUERY_STRING} action=create_order
    RewriteRule ^api-handler/?$ app/bank/ajax/create-order.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=check_recharge
    RewriteRule ^api-handler/?$ app/bank/ajax/check-recharge.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=check_status
    RewriteRule ^api-handler/?$ app/bank/ajax/check-status.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=notify_recharge
    RewriteRule ^api-handler/?$ app/bank/ajax/notify-admin.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=sepay_cron
    RewriteRule ^api-handler/?$ cron/sepay_cron.php [QSA,L]
    
    RewriteCond %{QUERY_STRING} action=charge_card
    RewriteRule ^api-handler/?$ app/card/ajax/charge.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=check_card_status
    RewriteRule ^api-handler/?$ app/card/ajax/check.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=card_cron
    RewriteRule ^api-handler/?$ cron/card_cron.php [QSA,L]

    RewriteCond %{QUERY_STRING} action=buy_vip
    RewriteRule ^api-handler/?$ app/buy-package/ajax/buy.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=notify_vip
    RewriteRule ^api-handler/?$ app/buy-package/ajax/notify-admin.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=buy_token
    RewriteRule ^api-handler/?$ app/package-api/ajax/buy.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=notify_token
    RewriteRule ^api-handler/?$ app/package-api/ajax/notify-admin.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=buy_product
    RewriteRule ^api-handler/?$ app/product/ajax/buy.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=notify_product
    RewriteRule ^api-handler/?$ app/product/ajax/notify-admin.php [QSA,L]
    RewriteCond %{QUERY_STRING} action=like_blog
    RewriteRule ^api-handler/?$ app/blog/ajax/like.php [QSA,L]
    
    # --- ĐỊNH TUYẾN CHUẨN RESTFUL CHO API GATEWAY ---
    RewriteRule ^api/v2/info/([a-zA-Z0-9]+)/?$ api/api_gateway.php?action=info&token=$1 [L,QSA]
    RewriteRule ^api/v2/game/([a-zA-Z0-9]+)/?$ api/api_gateway.php?action=list_games&token=$1 [L,QSA]
    RewriteRule ^api/v2/game/([a-zA-Z0-9_-]+)/([a-zA-Z0-9]+)/?$ api/api_gateway.php?action=predict&key_game=$1&token=$2 [L,QSA]

    # ==========================================
    # 4. ĐỊNH TUYẾN GIAO DIỆN GAME (CLIENT)
    # ==========================================
    RewriteRule ^game/bacarat/?$ client/layout/bacarat/index.php [QSA,L]
    RewriteRule ^games/bacarat/([a-zA-Z0-9_-]+)/?$ client/layout/bacarat/table.php?table=$1 [QSA,L]
    RewriteRule ^game/([a-zA-Z0-9_-]+)/?$ client/layout/games/game.php?slug=$1 [QSA,L]

    # ==========================================
    # 5. ĐỊNH TUYẾN TRANG QUẢN TRỊ (ADMIN PANEL)
    # ==========================================
    
    # Các URL có Slug/Token
    RewriteRule ^admin/blogs/([a-zA-Z0-9_-]+)/?$ admin/layout/pages/views.php?token=$1 [QSA,L]
    RewriteRule ^admin/game/edit/([a-zA-Z0-9_-]+)/?$ admin/layout/pages/game/add_game.php?slug=$1 [QSA,L]
    RewriteRule ^admin/product/edit/([a-zA-Z0-9_-]+)/?$ admin/layout/pages/product/add_product.php?slug=$1 [QSA,L]

    # Nhóm Cấu Hình Game
    RewriteRule ^admin/game/add/?$ admin/layout/pages/game/add_game.php [QSA,L]
    RewriteRule ^admin/game/config/?$ admin/layout/pages/game/config.php [QSA,L]
    RewriteRule ^admin/game/category/?$ admin/layout/pages/game/category.php [QSA,L]

    # Nhóm Gói Premium (Sản Phẩm)
    RewriteRule ^admin/product/config/?$ admin/layout/pages/product/config.php [QSA,L]
    RewriteRule ^admin/product/history/?$ admin/layout/pages/product/history.php [QSA,L]

    # Nhóm Gói Token API
    RewriteRule ^admin/api/config/?$ admin/layout/pages/api/config.php [QSA,L]
    RewriteRule ^admin/api/history/?$ admin/layout/pages/api/history.php [QSA,L]
    RewriteRule ^admin/api/token/?$ admin/layout/pages/api/token.php [QSA,L]

    # Nhóm Quản Lý Giao Dịch
    RewriteRule ^admin/transaction/bill/?$ admin/layout/pages/transaction/bill.php [QSA,L]
    # Link list giao dịch dùng chung file transactions cũ hoặc trỏ sang file mới
    RewriteRule ^admin/transaction/?$ admin/layout/pages/transactions.php [QSA,L]

    # Nhóm Quản Lý Thẻ Cào
    RewriteRule ^admin/card/config/?$ admin/layout/pages/card/config.php [QSA,L]
    RewriteRule ^admin/card/history/?$ admin/layout/pages/card/history.php [QSA,L]

    # Nhóm Quản Lý Ngân Hàng
    RewriteRule ^admin/bank/config/?$ admin/layout/pages/bank/config.php [QSA,L]

    # Nhóm Bài Viết (Blog)
    RewriteRule ^admin/blog/create/?$ admin/layout/pages/blog/create.php [QSA,L]
    RewriteRule ^admin/blog/?$ admin/layout/pages/blogs.php [QSA,L]

    # Nhóm Hệ Thống & Cài Đặt
    RewriteRule ^admin/settings/?$ admin/layout/pages/settings.php [QSA,L]
    RewriteRule ^admin/theme/?$ admin/layout/pages/theme.php [QSA,L]

    # Nhóm CronTask
    RewriteRule ^admin/cron/config/?$ admin/layout/pages/cron/config.php [QSA,L]
    RewriteRule ^admin/cron/logs/?$ admin/layout/pages/cron/logs.php [QSA,L]

    # Trang gốc & Cú pháp tự động lấy file 1 cấp (cho các mục còn lại như members, gift)
    RewriteRule ^admin/?$ admin/layout/pages/index.php [QSA,L]
    RewriteRule ^admin/([a-zA-Z0-9_-]+)/?$ admin/layout/pages/$1.php [QSA,L]

    # ==========================================
    # 6. ĐỊNH TUYẾN AUTH & USER PROFILE
    # ==========================================
    RewriteRule ^auth/?$ client/layout/auth/auth.php [QSA,L]
    RewriteRule ^logout/?$ client/layout/auth/logout.php [QSA,L]
    RewriteRule ^change-pass/?$ client/layout/auth/change-pass.php [QSA,L]
    RewriteRule ^profile/?$ client/layout/users/profile.php [QSA,L]
    RewriteRule ^ajax_profile/?$ client/layout/users/ajax_profile.php [QSA,L]
    RewriteRule ^maintenance/?$ client/layout/error/maintenance.php [QSA,L]

    # ==========================================
    # 7. ĐỊNH TUYẾN CÁC TRANG TÍNH NĂNG (CLIENT)
    # ==========================================
    RewriteRule ^home/?$ client/layout/pages/home.php [QSA,L]
    RewriteRule ^/?$ client/layout/pages/home.php [QSA,L]
    RewriteRule ^faq/?$ client/layout/pages/faq.php [QSA,L]
    RewriteRule ^document/?$ client/layout/pages/document.php [QSA,L]
    RewriteRule ^partner/?$ client/layout/pages/partner.php [QSA,L]
    RewriteRule ^tools/?$ client/layout/pages/tools.php [QSA,L]
    RewriteRule ^thue-vip/?$ client/layout/pages/package.php [QSA,L]
    RewriteRule ^thue-api/?$ client/layout/pages/package-api.php [QSA,L]
    RewriteRule ^bank/recharge/transfer/?$ client/layout/bank/transfer.php [QSA,L]
    RewriteRule ^bank/recharge/?$ client/layout/bank/recharge-bank.php [QSA,L]
    RewriteRule ^bank/card/?$ client/layout/bank/recharge-card.php [QSA,L]
    RewriteRule ^product/?$ client/layout/pages/product.php [QSA,L]
    RewriteRule ^view/([a-zA-Z0-9-]+)/?$ client/layout/pages/view.php?slug=$1 [QSA,L]
    RewriteRule ^history/(recharge|product|work)/?$ client/layout/pages/history.php?type=$1 [QSA,L]
    RewriteRule ^history/?$ client/layout/pages/history.php?type=recharge [QSA,L]
    RewriteRule ^blog/?$ client/layout/pages/blog.php [QSA,L]
    RewriteRule ^view-blog/([a-zA-Z0-9_-]+)/?$ client/layout/pages/view-blog.php?token=$1 [QSA,L]
    RewriteRule ^ctv/invite/?$ client/layout/ctv/index.php [QSA,L]
    RewriteRule ^terms/?$ client/layout/pages/terms.php [L,QSA]
    RewriteRule ^api/dashboard/?$ client/layout/api/index.php [QSA,L]
    RewriteRule ^403/?$ client/layout/error/403.php [QSA,L]

    # ==========================================
    # 8. TỰ ĐỘNG BỎ ĐUÔI .PHP (FALLBACK)
    # ==========================================
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php [L]
</IfModule>
