first upload all files

This commit is contained in:
NW
2023-06-11 13:14:03 +01:00
parent f14dbc52b5
commit c08b36d1b6
1705 changed files with 106852 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
<?php
namespace Modules\Coupon\Http\Controllers\Admin;
use Modules\Coupon\Entities\Coupon;
use Modules\Admin\Traits\HasCrudActions;
use Modules\Coupon\Http\Requests\SaveCouponRequest;
class CouponController
{
use HasCrudActions;
/**
* Model for the resource.
*
* @var string
*/
protected $model = Coupon::class;
/**
* Label of the resource.
*
* @var string
*/
protected $label = 'coupon::coupons.coupon';
/**
* View path of the resource.
*
* @var string
*/
protected $viewPath = 'coupon::admin.coupons';
/**
* Form requests for the resource.
*
* @var array|string
*/
protected $validation = SaveCouponRequest::class;
}

View File

@@ -0,0 +1,67 @@
<?php
namespace Modules\Coupon\Http\Controllers;
use Modules\Cart\Facades\Cart;
use Illuminate\Pipeline\Pipeline;
use Modules\Coupon\Entities\Coupon;
use Modules\Coupon\Checkers\ValidCoupon;
use Modules\Coupon\Checkers\CouponExists;
use Modules\Coupon\Checkers\MaximumSpend;
use Modules\Coupon\Checkers\MinimumSpend;
use Modules\Coupon\Checkers\AlreadyApplied;
use Modules\Coupon\Checkers\ExcludedProducts;
use Modules\Coupon\Checkers\ApplicableProducts;
use Modules\Coupon\Checkers\ExcludedCategories;
use Modules\Coupon\Checkers\UsageLimitPerCoupon;
use Modules\Coupon\Checkers\ApplicableCategories;
use Modules\Coupon\Checkers\UsageLimitPerCustomer;
class CartCouponController
{
private $checkers = [
CouponExists::class,
AlreadyApplied::class,
ValidCoupon::class,
MinimumSpend::class,
MaximumSpend::class,
ApplicableProducts::class,
ExcludedProducts::class,
ApplicableCategories::class,
ExcludedCategories::class,
UsageLimitPerCoupon::class,
UsageLimitPerCustomer::class,
];
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store()
{
$coupon = Coupon::findByCode(request('coupon'));
resolve(Pipeline::class)
->send($coupon)
->through($this->checkers)
->then(function ($coupon) {
Cart::applyCoupon($coupon);
});
return Cart::instance();
}
/**
* Destroy resources by given ids.
*
* @return void
*/
public function destroy()
{
Cart::removeCoupon();
return Cart::instance();
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace Modules\Coupon\Http\Requests;
use Modules\Core\Http\Requests\Request;
class SaveCouponRequest extends Request
{
/**
* Available attributes.
*
* @var string
*/
protected $availableAttributes = 'coupon::attributes';
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required',
'code' => 'required',
'is_percent' => 'required|boolean',
'value' => 'nullable|numeric|min:0|max:99999999999999',
'free_shipping' => 'required|boolean',
'start_date' => 'nullable|date',
'end_date' => 'nullable|date',
'is_active' => 'required|boolean',
'minimum_spend' => 'nullable|numeric|min:0|max:99999999999999',
'maximum_spend' => 'nullable|numeric|min:0|max:99999999999999',
'usage_limit_per_coupon' => 'nullable|numeric|min:0|max:4294967295',
'usage_limit_per_customer' => 'nullable|numeric|min:0|max:4294967295',
];
}
}