This commit is contained in:
2025-09-25 03:03:31 +05:00
commit ae480cf2f6
2768 changed files with 1485826 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Modules\GlobalOrder\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Ecommerce\Product\Order\Status\OrderStatus;
use App\Modules\GlobalOrder\Controllers\Requests\GlobalOrderStoreRequest;
use App\Modules\GlobalOrder\Models\GlobalOrder;
use Illuminate\Http\JsonResponse;
class GlobalOrderController extends Controller
{
/**
* Store resource
*/
public function store(GlobalOrderStoreRequest $request): JsonResponse
{
$globalOrder = GlobalOrder::create([
'customer_name' => $request->customer_name,
'customer_phone' => $request->customer_phone,
'customer_address' => $request->customer_address,
'payment_type' => $request->payment_type,
'notes' => $request->notes,
'order_website' => $request->order_website,
'status' => OrderStatus::default(),
'user_id' => auth()->id(),
]);
if ($request->hasFile('images')) {
$globalOrder->addMultipleMediaFromRequest(['images'])
->each(function ($fileAdder) {
$fileAdder->toMediaCollection('uploads');
});
}
return response()->rest([], 201, 'Created successfully');
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Modules\GlobalOrder\Controllers\Requests;
use App\Models\Ecommerce\Product\Order\Payment\OrderPayment;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\File as FileRule;
class GlobalOrderStoreRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string, mixed>
*/
public function rules(): array
{
return [
'customer_name' => ['required', 'string', 'max:255'],
'customer_phone' => ['required', 'integer', 'between:61000000,71999999'],
'customer_address' => ['nullable', 'string', 'max:255'],
'payment_type' => ['required', 'string', Rule::in(array_keys(OrderPayment::oldButGoodTypes()))],
'notes' => ['nullable', 'string', 'max:255'],
'order_website' => ['nullable', 'string', 'max:255'],
'images.*' => ['nullable', FileRule::image()->min('1kb')->max('10mb')],
];
}
/**
* Get the error messages for the defined validation rules.
*
* @return array<string, string>
*/
public function messages(): array
{
return [
'payment_type.in' => sprintf('Valid sources: %s', implode(', ', array_keys(
OrderPayment::oldButGoodTypes()
))),
];
}
}