Undangan/backend-baru/app/Http/Controllers/Api/TemplateApiController.php
2025-10-07 10:36:44 +07:00

67 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Template;
class TemplateApiController extends Controller
{
// Ambil semua template
public function index()
{
$templates = Template::with('kategori')->get();
$transformedTemplates = $templates->map(function ($template) {
return [
'id' => $template->id,
'nama_template' => $template->nama_template,
'harga' => $template->harga,
'paket' => $template->paket,
'kategori' => $template->kategori ? $template->kategori->nama : null,
'foto' => $template->foto ? asset('storage/' . $template->foto) : null,
];
});
return response()->json($transformedTemplates);
}
// Ambil detail template tertentu
public function show(Template $template)
{
return response()->json([
'id' => $template->id,
'nama_template' => $template->nama_template,
'harga' => $template->harga,
'paket' => $template->paket,
'kategori' => $template->kategori ? $template->kategori->nama : null,
'foto' => $template->foto ? asset('storage/' . $template->foto) : null,
]);
}
public function getByCategory($id)
{
$templates = Template::with('fiturs', 'kategori')
->where('kategori_id', $id)
->get();
$transformed = $templates->map(function($template) {
return [
'id' => $template->id,
'nama_template' => $template->nama_template,
'harga' => $template->harga,
'paket' => $template->paket,
'kategori' => $template->kategori ? [
'id' => $template->kategori->id,
'nama' => $template->kategori->nama
] : null,
'foto' => $template->foto ? asset('storage/' . $template->foto) : null,
'fiturs' => $template->fiturs ?? [],
];
});
return response()->json($transformed);
}
}