update deploy

This commit is contained in:
bulut
2026-03-27 10:41:54 +03:00
parent 69d19c0176
commit 6f6448aa06
422 changed files with 37956 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Api\V1;
use App\Enums\FaqCategory;
use App\Http\Controllers\Controller;
use App\Http\Resources\FaqResource;
use App\Repositories\Contracts\FaqRepositoryInterface;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
use OpenApi\Attributes as OA;
class FaqController extends Controller
{
public function __construct(private FaqRepositoryInterface $repository) {}
#[OA\Get(
path: '/api/v1/faqs/{category?}',
summary: 'SSS listesi',
description: 'Tüm veya kategoriye göre filtrelenmiş SSS listesi döndürür. ?limit=6 ile anasayfa için sınırlanabilir.',
tags: ['FAQs'],
parameters: [
new OA\Parameter(name: 'category', in: 'path', required: false, schema: new OA\Schema(type: 'string'), description: 'FAQ kategori filtresi'),
new OA\Parameter(name: 'limit', in: 'query', required: false, schema: new OA\Schema(type: 'integer'), description: 'Dönen SSS sayısını sınırla (anasayfa için)'),
],
responses: [
new OA\Response(response: 200, description: 'SSS listesi'),
new OA\Response(response: 404, description: 'Kategori bulunamadı'),
],
)]
public function index(Request $request, ?string $category = null): AnonymousResourceCollection
{
$limit = $request->integer('limit', 0);
if ($category) {
$faqCategory = FaqCategory::tryFrom($category);
if (! $faqCategory) {
abort(404, 'FAQ kategorisi bulunamadı.');
}
$faqs = $this->repository->getByCategory($faqCategory);
if ($limit > 0) {
$faqs = $faqs->take($limit);
}
return FaqResource::collection($faqs);
}
$perPage = $limit > 0 ? $limit : 100;
return FaqResource::collection($this->repository->paginate([], $perPage));
}
}