migrate to gtea from bistbucket
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Restaurant\Http\Requests\Order;
|
||||
|
||||
use App\Enum\OrderStatus;
|
||||
use App\Enum\OrderType;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class CustomerOrderStoreRequest extends FormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
// 🔹 Core order fields
|
||||
'order_type' => 'required|in:'.implode(',', OrderType::values()),
|
||||
'status' => 'nullable|in:'.implode(',', OrderStatus::values()),
|
||||
|
||||
'table_id' => 'nullable|exists:tables,id',
|
||||
'waiter_id' => 'nullable|exists:users,id',
|
||||
'driver_id' => 'nullable|exists:users,id',
|
||||
'customer_id' => 'nullable|exists:customers,id',
|
||||
|
||||
// 🔹 Order identification
|
||||
'order_number' => 'nullable|string|max:50|unique:orders,order_number',
|
||||
'reference' => 'nullable|string|max:100',
|
||||
|
||||
// 🔹 Customer info
|
||||
'customer_name' => 'nullable|string|max:255',
|
||||
'customer_phone' => 'nullable|string|max:20',
|
||||
'delivery_address' => 'nullable|string|max:500',
|
||||
|
||||
// 🔹 Financials
|
||||
'subtotal' => 'nullable|numeric|min:0',
|
||||
'discount' => 'nullable|numeric|min:0',
|
||||
'tax' => 'nullable|numeric|min:0',
|
||||
'service_charge' => 'nullable|numeric|min:0',
|
||||
'tip_amount' => 'nullable|numeric|min:0',
|
||||
'grand_total' => 'required|numeric|min:0',
|
||||
|
||||
// 🔹 Payment
|
||||
'payment_method_id' => 'required|exists:payment_methods,id',
|
||||
'payment_status' => 'nullable|boolean',
|
||||
'payment_reference' => 'nullable|string|max:100',
|
||||
'paid_at' => 'nullable|date',
|
||||
|
||||
// 🔹 Operational
|
||||
'order_source' => 'nullable|in:POS,Web,MobileApp,ThirdParty',
|
||||
'estimated_ready_time' => 'nullable|date',
|
||||
'delivered_at' => 'nullable|date',
|
||||
|
||||
// 🔹 Items (nested validation)
|
||||
'items.*.food_variant_id' => 'nullable|exists:food_variants,id',
|
||||
'items.*.addons' => 'nullable|array',
|
||||
'items.*.addons.*.name' => 'nullable|string|max:255',
|
||||
'items.*.addons.*.price' => 'nullable|numeric|min:0',
|
||||
|
||||
// 🔹 Audit
|
||||
'added_by' => 'nullable|exists:users,id',
|
||||
];
|
||||
}
|
||||
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Restaurant\Http\Requests\Order;
|
||||
|
||||
use App\Enum\OrderStatus;
|
||||
use App\Enum\OrderType;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class CustomerOrderUpdateRequest extends FormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
// 🔹 Core order fields
|
||||
'order_type' => 'required|in:'.implode(',', OrderType::values()),
|
||||
'status' => 'nullable|in:'.implode(',', OrderStatus::values()),
|
||||
|
||||
'table_id' => 'nullable|exists:tables,id',
|
||||
'waiter_id' => 'nullable|exists:users,id',
|
||||
'driver_id' => 'nullable|exists:users,id',
|
||||
'customer_id' => 'nullable|exists:customers,id',
|
||||
|
||||
// 🔹 Order identification
|
||||
'order_number' => 'nullable|string|max:50|unique:orders,order_number',
|
||||
'reference' => 'nullable|string|max:100',
|
||||
|
||||
// 🔹 Customer info
|
||||
'customer_name' => 'nullable|string|max:255',
|
||||
'customer_phone' => 'nullable|string|max:20',
|
||||
'delivery_address' => 'nullable|string|max:500',
|
||||
|
||||
// 🔹 Financials
|
||||
'subtotal' => 'nullable|numeric|min:0',
|
||||
'discount' => 'nullable|numeric|min:0',
|
||||
'tax' => 'nullable|numeric|min:0',
|
||||
'service_charge' => 'nullable|numeric|min:0',
|
||||
'tip_amount' => 'nullable|numeric|min:0',
|
||||
'grand_total' => 'required|numeric|min:0',
|
||||
|
||||
// 🔹 Payment
|
||||
'payment_method_id' => 'required|exists:payment_methods,id',
|
||||
'payment_status' => 'nullable|boolean',
|
||||
'payment_reference' => 'nullable|string|max:100',
|
||||
'paid_at' => 'nullable|date',
|
||||
|
||||
// 🔹 Operational
|
||||
'order_source' => 'nullable|in:POS,Web,MobileApp,ThirdParty',
|
||||
'estimated_ready_time' => 'nullable|date',
|
||||
'delivered_at' => 'nullable|date',
|
||||
|
||||
// 🔹 Items (nested validation)
|
||||
'items' => 'required|array|min:1',
|
||||
'items.*.food_item_id' => 'required|exists:food_items,id',
|
||||
'items.*.quantity' => 'required|integer|min:1',
|
||||
'items.*.price' => 'required|numeric|min:0',
|
||||
|
||||
// 🔹 Audit
|
||||
'updated_by' => 'nullable|exists:users,id',
|
||||
];
|
||||
}
|
||||
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Restaurant\Http\Requests\Order;
|
||||
|
||||
use App\Enum\OrderStatus;
|
||||
use App\Enum\OrderType;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class OrderStoreRequest extends FormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
// 🔹 Core order fields
|
||||
'order_type' => 'required|in:'.implode(',', OrderType::values()),
|
||||
'status' => 'required|in:'.implode(',', OrderStatus::values()),
|
||||
|
||||
'table_id' => 'nullable|exists:tables,id',
|
||||
'waiter_id' => 'nullable|exists:users,id',
|
||||
'driver_id' => 'nullable|exists:users,id',
|
||||
'customer_id' => 'nullable|exists:customers,id',
|
||||
|
||||
// 🔹 Order identification
|
||||
'order_number' => 'nullable|string|max:50|unique:orders,order_number',
|
||||
'reference' => 'nullable|string|max:100',
|
||||
|
||||
// 🔹 Customer info
|
||||
'customer_name' => 'nullable|string|max:255',
|
||||
'customer_phone' => 'nullable|string|max:20',
|
||||
'delivery_address' => 'nullable|string|max:500',
|
||||
|
||||
// 🔹 Financials
|
||||
'subtotal' => 'nullable|numeric|min:0',
|
||||
'discount' => 'nullable|numeric|min:0',
|
||||
'tax' => 'nullable|numeric|min:0',
|
||||
'service_charge' => 'nullable|numeric|min:0',
|
||||
'tip_amount' => 'nullable|numeric|min:0',
|
||||
'grand_total' => 'required|numeric|min:0',
|
||||
|
||||
// 🔹 Payment
|
||||
'payment_method_id' => 'required|exists:payment_methods,id',
|
||||
'payment_status' => 'nullable|boolean',
|
||||
'payment_reference' => 'nullable|string|max:100',
|
||||
'paid_at' => 'nullable|date',
|
||||
|
||||
// 🔹 Operational
|
||||
'order_source' => 'nullable|in:POS,Web,MobileApp,ThirdParty',
|
||||
'estimated_ready_time' => 'nullable|date',
|
||||
'delivered_at' => 'nullable|date',
|
||||
|
||||
// 🔹 Items (nested validation)
|
||||
'items.*.food_variant_id' => 'nullable|exists:food_variants,id',
|
||||
'items.*.addons' => 'nullable|array',
|
||||
'items.*.addons.*.name' => 'nullable|string|max:255',
|
||||
'items.*.addons.*.price' => 'nullable|numeric|min:0',
|
||||
|
||||
// 🔹 Audit
|
||||
'added_by' => 'nullable|exists:users,id',
|
||||
];
|
||||
}
|
||||
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Restaurant\Http\Requests\Order;
|
||||
|
||||
use App\Enum\OrderStatus;
|
||||
use App\Enum\OrderType;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class OrderUpdateRequest extends FormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
// 🔹 Core order fields
|
||||
'order_type' => 'required|in:'.implode(',', OrderType::values()),
|
||||
'status' => 'required|in:'.implode(',', OrderStatus::values()),
|
||||
|
||||
'table_id' => 'nullable|exists:tables,id',
|
||||
'waiter_id' => 'nullable|exists:users,id',
|
||||
'driver_id' => 'nullable|exists:users,id',
|
||||
'customer_id' => 'nullable|exists:customers,id',
|
||||
|
||||
// 🔹 Order identification
|
||||
'order_number' => 'nullable|string|max:50|unique:orders,order_number',
|
||||
'reference' => 'nullable|string|max:100',
|
||||
|
||||
// 🔹 Customer info
|
||||
'customer_name' => 'nullable|string|max:255',
|
||||
'customer_phone' => 'nullable|string|max:20',
|
||||
'delivery_address' => 'nullable|string|max:500',
|
||||
|
||||
// 🔹 Financials
|
||||
'subtotal' => 'nullable|numeric|min:0',
|
||||
'discount' => 'nullable|numeric|min:0',
|
||||
'tax' => 'nullable|numeric|min:0',
|
||||
'service_charge' => 'nullable|numeric|min:0',
|
||||
'tip_amount' => 'nullable|numeric|min:0',
|
||||
'grand_total' => 'required|numeric|min:0',
|
||||
|
||||
// 🔹 Payment
|
||||
'payment_method_id' => 'required|exists:payment_methods,id',
|
||||
'payment_status' => 'nullable|boolean',
|
||||
'payment_reference' => 'nullable|string|max:100',
|
||||
'paid_at' => 'nullable|date',
|
||||
|
||||
// 🔹 Operational
|
||||
'order_source' => 'nullable|in:POS,Web,MobileApp,ThirdParty',
|
||||
'estimated_ready_time' => 'nullable|date',
|
||||
'delivered_at' => 'nullable|date',
|
||||
|
||||
// 🔹 Items (nested validation)
|
||||
'items' => 'required|array|min:1',
|
||||
'items.*.food_item_id' => 'required|exists:food_items,id',
|
||||
'items.*.quantity' => 'required|integer|min:1',
|
||||
'items.*.price' => 'required|numeric|min:0',
|
||||
|
||||
// 🔹 Audit
|
||||
'updated_by' => 'nullable|exists:users,id',
|
||||
];
|
||||
}
|
||||
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user