feat: add ApiResponse trait for standardized API responses

chore: update composer dependencies to include phppresentation

chore: update composer.lock after adding phppresentation

feat: create categories migration for category management

feat: create templates migration for template storage

feat: create template generations migration for tracking template usage

feat: create template keys migration for template customization

feat: create notifications migration for user notifications

feat: update API routes for categories, templates, and user profile management

docs: update API documentation to include new endpoints for profile and wallet
This commit is contained in:
2026-07-07 01:03:12 +03:30
parent cf0e6f82fd
commit ae974c2afa
68 changed files with 3594 additions and 100 deletions

View File

@@ -7,6 +7,7 @@ use App\Http\Requests\Auth\LoginRequest;
use App\Http\Requests\Auth\RegisterRequest;
use App\Http\Resources\UserResource;
use App\Models\User;
use App\Traits\ApiResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
@@ -14,6 +15,8 @@ use OpenApi\Attributes as OA;
class AuthController extends Controller
{
use ApiResponse;
#[OA\Post(
path: '/auth/register',
description: 'Register a new user account',
@@ -64,12 +67,9 @@ class AuthController extends Controller
$token = $user->createToken('auth-token')->plainTextToken;
return response()->json([
'message' => 'ثبت‌نام با موفقیت انجام شد.',
'data' => [
'user' => new UserResource($user),
'token' => $token,
],
return $this->success('ثبت‌نام با موفقیت انجام شد.', [
'user' => new UserResource($user),
'token' => $token,
], 201);
}
@@ -121,22 +121,16 @@ class AuthController extends Controller
->first();
if (! $user || ! Hash::check($request->validated('password'), $user->password)) {
return response()->json([
'message' => 'اطلاعات ورود نادرست است.',
'errors' => [
'login' => ['ایمیل یا نام کاربری یا رمز عبور اشتباه است.'],
],
], 422);
return $this->error('اطلاعات ورود نادرست است.', [
'login' => ['ایمیل یا نام کاربری یا رمز عبور اشتباه است.'],
]);
}
$token = $user->createToken('auth-token')->plainTextToken;
return response()->json([
'message' => 'ورود با موفقیت انجام شد.',
'data' => [
'user' => new UserResource($user),
'token' => $token,
],
return $this->success('ورود با موفقیت انجام شد.', [
'user' => new UserResource($user),
'token' => $token,
]);
}
@@ -147,7 +141,7 @@ class AuthController extends Controller
$counter = 1;
while (User::query()->where('username', $username)->exists()) {
$username = $base.$counter;
$username = $base . $counter;
$counter++;
}