Compare commits

...

5 Commits

Author SHA1 Message Date
5e98841eea Update app/Models/Ecommerce/Product/Category/Category.php 2026-03-04 23:28:31 +05:00
2b8f9aa314 wip 2026-03-02 07:30:59 +05:00
cb63c54c39 wip 2026-03-02 07:08:57 +05:00
b7bc192e6f wip 2026-03-02 07:01:14 +05:00
06617a0005 wip 2026-02-25 19:24:49 +05:00
9 changed files with 31 additions and 8 deletions

View File

@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\CheckoutOrderRequest; use App\Http\Requests\CheckoutOrderRequest;
use App\Http\Resources\Api\V1\Order\OrderIndexResource; use App\Http\Resources\Api\V1\Order\OrderIndexResource;
use App\Models\Ecommerce\Product\Order\Order; use App\Models\Ecommerce\Product\Order\Order;
use App\Models\Ecommerce\Product\Order\Shipping\OrderShipping;
use App\Repositories\Ecommerce\Order\OrderRepository; use App\Repositories\Ecommerce\Order\OrderRepository;
use App\Services\Order\CreateOrderService; use App\Services\Order\CreateOrderService;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
@@ -33,6 +34,27 @@ class OrderController extends Controller
return response()->rest(OrderRepository::availableTimes()); return response()->rest(OrderRepository::availableTimes());
} }
/**
* Order deliveries
*/
public function deliveries(): JsonResponse
{
return response()->rest([
[
'name' => OrderShipping::STANDART,
'price' => 20,
],
[
'name' => OrderShipping::SELF_PICKUP,
'price' => 0
],
[
'name' => OrderShipping::REGION,
'price' => 40,
],
]);
}
/** /**
* (*) Store order * (*) Store order
*/ */

View File

@@ -40,6 +40,7 @@ class CheckoutOrderRequest extends FormRequest
'customer_address' => ['required', 'string', 'max:255'], 'customer_address' => ['required', 'string', 'max:255'],
'shipping_method' => ['required', 'string', 'max:255', Rule::in(array_keys(OrderShipping::values()))], 'shipping_method' => ['required', 'string', 'max:255', Rule::in(array_keys(OrderShipping::values()))],
'shipping_price' => ['nullable', 'numeric'],
'payment_type_id' => ['required', Rule::in(array_keys(OrderPayment::values()))], 'payment_type_id' => ['required', Rule::in(array_keys(OrderPayment::values()))],
'notes' => ['nullable', 'string', 'max:255'], 'notes' => ['nullable', 'string', 'max:255'],
@@ -65,7 +66,7 @@ class CheckoutOrderRequest extends FormRequest
'user_id' => auth()->id(), 'user_id' => auth()->id(),
'notes' => $this->notes ?: null, 'notes' => $this->notes ?: null,
'province_id' => $this->province_id ?: null, 'province_id' => $this->province_id ?: null,
'shipping_price' => OrderShipping::priceFor($this->shipping_method), 'shipping_price' => $this->shipping_price ?: OrderShipping::priceFor($this->shipping_method),
'delivery_time' => $this->delivery_time ?: OrderShipping::MORNING, 'delivery_time' => $this->delivery_time ?: OrderShipping::MORNING,
'delivery_at' => $this->delivery_at ?: date('Y-m-d'), 'delivery_at' => $this->delivery_at ?: date('Y-m-d'),
'source' => $this->source ?: OS::MOBILE_APP, 'source' => $this->source ?: OS::MOBILE_APP,

View File

@@ -82,7 +82,6 @@ class Category extends Model implements HasMedia, Sortable
{ {
$this->addMediaCollection('uploads') $this->addMediaCollection('uploads')
->singleFile() ->singleFile()
->acceptsMimeTypes(['image/jpg', 'image/jpeg', 'image/png'])
->useFallbackUrl( ->useFallbackUrl(
sprintf('%s/logo-space.png', config('app.url')) sprintf('%s/logo-space.png', config('app.url'))
); );

View File

@@ -27,7 +27,7 @@ class OrderFieldsForCreate
return [ return [
Hidden::make('number')->default(Str::random(30)), Hidden::make('number')->default(Str::random(30)),
Hidden::make('user_id')->default($request->user()->id), Hidden::make('user_id')->default($request->user()->id),
Hidden::make('source_app')->default(OS::ADMIN), Hidden::make('source')->default(OS::ADMIN),
ID::make(), ID::make(),

View File

@@ -67,7 +67,7 @@ class OrderFieldsForDetail
) )
->asHtml(), ->asHtml(),
Select::make(__('App'), 'source_app') Select::make(__('App'), 'source')
->displayUsingLabels() ->displayUsingLabels()
->options(OS::apps()) ->options(OS::apps())
->sortable(), ->sortable(),

View File

@@ -55,7 +55,7 @@ class OrderFieldsForIndex
->default(OrderShipping::default()) ->default(OrderShipping::default())
->sortable(), ->sortable(),
Select::make(__('Source'), 'source_app') Select::make(__('Source'), 'source')
->displayUsingLabels() ->displayUsingLabels()
->options(OS::apps()) ->options(OS::apps())
->sortable(), ->sortable(),

View File

@@ -64,8 +64,8 @@ class ChannelPolicy
*/ */
public function update(User $user, Channel $channel): Response public function update(User $user, Channel $channel): Response
{ {
if ($user->hasRole(['admin'])) { if (tmpostChannel()->slug === $channel->slug) {
return $this->allow(); return $this->deny();
} }
return $this->deny(); return $this->deny();

View File

@@ -33,7 +33,7 @@ class DatabaseSeeder extends Seeder
public function run(): void public function run(): void
{ {
$this->call([ $this->call([
ProvincesTableSeeder::class, // ProvincesTableSeeder::class,
// PaymentTypeSeeder::class, // PaymentTypeSeeder::class,
// UsersTableSeeder::class, // UsersTableSeeder::class,
// BrandsSeeder::class, // BrandsSeeder::class,

View File

@@ -92,6 +92,7 @@ Route::middleware('auth:sanctum')
// Order settings... // Order settings...
Route::get('order-time', [OrderController::class, 'time']); Route::get('order-time', [OrderController::class, 'time']);
Route::get('order-payments', [OrderPaymentController::class, 'index']); Route::get('order-payments', [OrderPaymentController::class, 'index']);
Route::get('order-deliveries', [OrderController::class, 'deliveries']);
// Provinces... // Provinces...
Route::get('provinces', [ProvinceController::class, 'index']); Route::get('provinces', [ProvinceController::class, 'index']);