Add all files
This commit is contained in:
26
app/Http/Requests/Api/Admin/AdminApiRequest.php
Normal file
26
app/Http/Requests/Api/Admin/AdminApiRequest.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
abstract class AdminApiRequest extends FormRequest
|
||||
{
|
||||
protected $permission;
|
||||
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return in_array('admin.' . $this->permission, $this->instance()->attributes->get('api_key_permissions', []));
|
||||
}
|
||||
|
||||
/**
|
||||
* Default set of rules to apply to API requests.
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Invoices;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class CreateInvoiceRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'invoices.create';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'user_id' => 'required|exists:users,id',
|
||||
/**
|
||||
* @example USD
|
||||
*/
|
||||
'currency_code' => 'required|string|exists:currencies,code',
|
||||
'due_at' => 'nullable|date',
|
||||
/**
|
||||
* @default pending
|
||||
*/
|
||||
'status' => 'required|string|in:pending,paid,cancelled', // Status can be one of these values
|
||||
];
|
||||
}
|
||||
|
||||
public function prepareForValidation()
|
||||
{
|
||||
$this->mergeIfMissing([
|
||||
'status' => 'pending', // Default status to 'pending' if not provided
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Invoices;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class DeleteInvoiceRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'invoices.delete';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Invoices/GetInvoiceRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Invoices/GetInvoiceRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Invoices;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetInvoiceRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'invoices.view';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Invoices/GetInvoicesRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Invoices/GetInvoicesRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Invoices;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetInvoicesRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'invoices.view';
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Invoices;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class UpdateInvoiceRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'invoices.update';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'user_id' => 'required|exists:users,id',
|
||||
/**
|
||||
* @example USD
|
||||
*/
|
||||
'currency_code' => 'required|string|exists:currencies,code',
|
||||
'due_at' => 'nullable|date',
|
||||
/**
|
||||
* @default pending
|
||||
*/
|
||||
'status' => 'required|string|in:pending,paid,cancelled', // Status can be one of these values
|
||||
];
|
||||
}
|
||||
}
|
||||
21
app/Http/Requests/Api/Admin/Orders/CreateOrderRequest.php
Normal file
21
app/Http/Requests/Api/Admin/Orders/CreateOrderRequest.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Orders;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class CreateOrderRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'orders.create';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'user_id' => 'required|exists:users,id',
|
||||
/**
|
||||
* @example USD
|
||||
*/
|
||||
'currency_code' => 'required|string|exists:currencies,code',
|
||||
];
|
||||
}
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Orders/DeleteOrderRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Orders/DeleteOrderRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Orders;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class DeleteOrderRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'orders.delete';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Orders/GetOrderRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Orders/GetOrderRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Orders;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetOrderRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'orders.view';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Orders/GetOrdersRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Orders/GetOrdersRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Orders;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetOrdersRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'orders.view';
|
||||
}
|
||||
21
app/Http/Requests/Api/Admin/Orders/UpdateOrderRequest.php
Normal file
21
app/Http/Requests/Api/Admin/Orders/UpdateOrderRequest.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Orders;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class UpdateOrderRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'orders.update';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'user_id' => 'required|exists:users,id',
|
||||
/**
|
||||
* @example USD
|
||||
*/
|
||||
'currency_code' => 'required|string|exists:currencies,code',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Services;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
use App\Models\Product;
|
||||
|
||||
class CreateServiceRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'services.create';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'product_id' => 'required|exists:products,id',
|
||||
'plan_id' => [
|
||||
'required',
|
||||
'exists:plans,id',
|
||||
function ($attribute, $value, $fail) {
|
||||
$productId = $this->input('product_id');
|
||||
if ($productId && !\App\Models\Plan::where('id', $value)->where('priceable_type', Product::class)->where('priceable_id', $productId)->exists()) {
|
||||
// Check if the plan belongs to the specified product
|
||||
$fail('The selected plan does not belong to the specified product.');
|
||||
}
|
||||
},
|
||||
],
|
||||
'user_id' => 'required|exists:users,id',
|
||||
/**
|
||||
* @default 1
|
||||
*/
|
||||
'quantity' => 'required|integer|min:1',
|
||||
/**
|
||||
* @default pending
|
||||
*/
|
||||
'status' => 'required|in:pending,active,cancelled,suspended',
|
||||
'expires_at' => 'nullable|date|after_or_equal:today',
|
||||
/**
|
||||
* @example USD
|
||||
*/
|
||||
'currency_code' => 'required|string|exists:currencies,code',
|
||||
'price' => 'required|numeric|min:0',
|
||||
'coupon_id' => 'nullable|exists:coupons,id',
|
||||
'subscription_id' => 'nullable|string|max:255',
|
||||
'order_id' => 'nullable|exists:orders,id',
|
||||
];
|
||||
}
|
||||
|
||||
public function prepareForValidation()
|
||||
{
|
||||
$this->mergeIfMissing([
|
||||
'quantity' => 1, // Default quantity to 1 if not provided
|
||||
'status' => 'pending', // Default status to 'pending' if not provided
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Services;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class DeleteServiceRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'services.delete';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Services/GetServiceRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Services/GetServiceRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Services;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetServiceRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'services.view';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Services/GetServicesRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Services/GetServicesRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Services;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetServicesRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'services.view';
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Services;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class UpdateServiceRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'services.update';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'product_id' => 'required|exists:products,id',
|
||||
'plan_id' => [
|
||||
'required',
|
||||
'exists:plans,id',
|
||||
function ($attribute, $value, $fail) {
|
||||
$productId = $this->input('product_id');
|
||||
if ($productId && !\App\Models\Plan::where('id', $value)->where('priceable_type', Product::class)->where('priceable_id', $productId)->exists()) {
|
||||
// Check if the plan belongs to the specified product
|
||||
$fail('The selected plan does not belong to the specified product.');
|
||||
}
|
||||
},
|
||||
],
|
||||
'user_id' => 'required|exists:users,id',
|
||||
/**
|
||||
* @default 1
|
||||
*/
|
||||
'quantity' => 'required|integer|min:1',
|
||||
/**
|
||||
* @default pending
|
||||
*/
|
||||
'status' => 'required|in:pending,active,cancelled,suspended',
|
||||
'expires_at' => 'nullable|date|after_or_equal:today',
|
||||
/**
|
||||
* @example USD
|
||||
*/
|
||||
'currency_code' => 'required|string|exists:currencies,code',
|
||||
'price' => 'required|numeric|min:0',
|
||||
'coupon_id' => 'nullable|exists:coupons,id',
|
||||
'subscription_id' => 'nullable|string|max:255',
|
||||
'order_id' => 'nullable|exists:orders,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\TicketMessages;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class CreateTicketMessageRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'ticket_messages.create';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'message' => 'required|string|max:5000',
|
||||
'user_id' => 'required|exists:users,id',
|
||||
'ticket_id' => 'required|exists:tickets,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\TicketMessages;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class DeleteTicketMessageRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'ticket_messages.delete';
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\TicketMessages;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetTicketMessageRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'ticket_messages.view';
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\TicketMessages;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetTicketMessagesRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'ticket_messages.view';
|
||||
}
|
||||
29
app/Http/Requests/Api/Admin/Tickets/CreateTicketRequest.php
Normal file
29
app/Http/Requests/Api/Admin/Tickets/CreateTicketRequest.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Tickets;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class CreateTicketRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'tickets.create';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'subject' => 'required|string|max:255',
|
||||
'user_id' => 'required|exists:users,id',
|
||||
'department' => 'nullable|string|in:' . implode(',', config('settings.ticket_departments', [])),
|
||||
'priority' => 'required|string|in:low,medium,high',
|
||||
'status' => 'required|string|in:open,closed,replied',
|
||||
];
|
||||
}
|
||||
|
||||
public function prepareForValidation()
|
||||
{
|
||||
$this->mergeIfMissing([
|
||||
'priority' => 'medium', // Default priority to 'medium' if not provided
|
||||
'status' => 'open', // Default status to 'open' if not provided
|
||||
]);
|
||||
}
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Tickets/DeleteTicketRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Tickets/DeleteTicketRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Tickets;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class DeleteTicketRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'tickets.delete';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Tickets/GetTicketRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Tickets/GetTicketRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Tickets;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetTicketRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'tickets.view';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Tickets/GetTicketsRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Tickets/GetTicketsRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Tickets;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetTicketsRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'tickets.view';
|
||||
}
|
||||
21
app/Http/Requests/Api/Admin/Tickets/UpdateTicketRequest.php
Normal file
21
app/Http/Requests/Api/Admin/Tickets/UpdateTicketRequest.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Tickets;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class UpdateTicketRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'tickets.update';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'subject' => 'required|string|max:255',
|
||||
'user_id' => 'required|exists:users,id',
|
||||
'department' => 'nullable|string|in:' . implode(',', config('settings.ticket_departments', [])),
|
||||
'priority' => 'required|string|in:low,medium,high',
|
||||
'status' => 'required|string|in:open,closed,replied',
|
||||
];
|
||||
}
|
||||
}
|
||||
22
app/Http/Requests/Api/Admin/Users/CreateUserRequest.php
Normal file
22
app/Http/Requests/Api/Admin/Users/CreateUserRequest.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Users;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class CreateUserRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'users.create';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'first_name' => 'nullable|string|max:255',
|
||||
'last_name' => 'nullable|string|max:255',
|
||||
'email' => 'required|email|max:255|unique:users,email',
|
||||
'password' => 'required|string|min:8',
|
||||
'email_verified_at' => 'nullable|date',
|
||||
'role_id' => 'nullable|exists:roles,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Users/DeleteUserRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Users/DeleteUserRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Users;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class DeleteUserRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'users.delete';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Users/GetUserRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Users/GetUserRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Users;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetUserRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'users.view';
|
||||
}
|
||||
10
app/Http/Requests/Api/Admin/Users/GetUsersRequest.php
Normal file
10
app/Http/Requests/Api/Admin/Users/GetUsersRequest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Users;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class GetUsersRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'users.view';
|
||||
}
|
||||
22
app/Http/Requests/Api/Admin/Users/UpdateUserRequest.php
Normal file
22
app/Http/Requests/Api/Admin/Users/UpdateUserRequest.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Api\Admin\Users;
|
||||
|
||||
use App\Http\Requests\Api\Admin\AdminApiRequest;
|
||||
|
||||
class UpdateUserRequest extends AdminApiRequest
|
||||
{
|
||||
protected $permission = 'users.update';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'first_name' => 'nullable|string|max:255',
|
||||
'last_name' => 'nullable|string|max:255',
|
||||
'email' => 'required|email|max:255|unique:users,email,' . $this->route()->parameter('user')->id,
|
||||
'password' => 'nullable|string|min:8',
|
||||
'email_verified_at' => 'nullable|date',
|
||||
'role_id' => 'nullable|exists:roles,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user