1) Backend (Laravel) A. Konfigurasi .env config/ dramabox.php melolo.php B. Domain (Kontrak / Interface) app/Domain/ Dramabox/ Contracts/ DramaboxClient.php Isi kontrak (contoh pola): DramaboxClient: forYou() newest() rank() search() suggest() classify() drama() chapters() C. Infrastructure (HTTP Client yang hit API upstream + cache) app/Infrastructure/ Dramabox/ HttpDramaboxClient.php Yang biasanya ada di dalamnya: baca config('dramabox.base_url') / config('melolo.base_url') get($path, $query) pakai Http::withHeaders()->timeout()->get() Cache::remember($key, $ttl, fn()=> ...) D. Controller API (endpoint internal untuk frontend) app/Http/Controllers/Api/ DramaboxController.php Contoh route internal yang dipanggil blade/alpine: Dramabox: /api/dramabox/foryou /api/dramabox/new /api/dramabox/rank /api/dramabox/search /api/dramabox/drama/{bookId} /api/dramabox/chapters/{bookId} Catatan: kamu sempat punya fungsi “cover registry” di DramaboxController—itu boleh tetap di controller atau dipindah jadi helper/service kecil. E. Watch / Proxy Video (kalau kamu pakai) app/Http/Controllers/ WatchController.php Biasanya isinya: player() untuk hit upstream player endpoint stream() untuk proxy video MP4 + support Range F. Routes routes/ web.php api.php api.php → daftar endpoint internal /api/dramabox/... web.php → halaman blade: / home dramabox /drama/{bookId} detail dramabox /watch/{bookId} watch dramabox /search search dramabox G. Provider Binding (Dependency Injection) app/Providers/ AppServiceProvider.php Biasanya register() ada: bind DramaboxClient::class → HttpDramaboxClient::class