fix: refactor code to group into folder
This commit is contained in:
parent
ca0aaaa84b
commit
5d6f75bdc2
@ -46,7 +46,7 @@ class IdeHelperAddress {}
|
|||||||
/**
|
/**
|
||||||
* @property int $id
|
* @property int $id
|
||||||
* @property int $user_id
|
* @property int $user_id
|
||||||
* @property \App\Enums\CartStatus $status
|
* @property \App\Enums\Cart\CartStatus $status
|
||||||
* @property \Illuminate\Support\Carbon|null $created_at
|
* @property \Illuminate\Support\Carbon|null $created_at
|
||||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||||
* @property-read \App\Models\Order|null $order
|
* @property-read \App\Models\Order|null $order
|
||||||
@ -87,6 +87,7 @@ class IdeHelperCart {}
|
|||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Payment> $payments
|
||||||
* @property-read int|null $payments_count
|
* @property-read int|null $payments_count
|
||||||
* @property-read \App\Models\StripeSession|null $stripeSession
|
* @property-read \App\Models\StripeSession|null $stripeSession
|
||||||
|
* @property-read mixed $total_amount
|
||||||
* @property-read \App\Models\User $user
|
* @property-read \App\Models\User $user
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder<static>|Order newModelQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder<static>|Order newModelQuery()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder<static>|Order newQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder<static>|Order newQuery()
|
||||||
@ -272,7 +273,7 @@ class IdeHelperStripeSession {}
|
|||||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||||
* @property string $mobile_number
|
* @property string $mobile_number
|
||||||
* @property string $city
|
* @property string $city
|
||||||
* @property \App\Enums\UserRoles $role
|
* @property \App\Enums\User\UserRoles $role
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Address> $addresses
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Address> $addresses
|
||||||
* @property-read int|null $addresses_count
|
* @property-read int|null $addresses_count
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Cart> $carts
|
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Cart> $carts
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Address;
|
||||||
|
|
||||||
use App\Models\Address;
|
use App\Models\Address;
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Address;
|
||||||
|
|
||||||
use App\Data\AddUserAddressRequestDTO;
|
use App\Data\Address\AddUserAddressRequestDTO;
|
||||||
use App\Data\UserAddressResponseDTO;
|
use App\Data\Address\UserAddressResponseDTO;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
final readonly class SaveUserAddressAction
|
final readonly class SaveUserAddressAction
|
||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Address;
|
||||||
|
|
||||||
use App\Data\UpdateUserAddressRequestDTO;
|
use App\Data\Address\UpdateUserAddressRequestDTO;
|
||||||
use App\Data\UserAddressResponseDTO;
|
use App\Data\Address\UserAddressResponseDTO;
|
||||||
use App\Models\Address;
|
use App\Models\Address;
|
||||||
|
|
||||||
final readonly class UpdateUserAddressAction
|
final readonly class UpdateUserAddressAction
|
||||||
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Cart;
|
||||||
|
|
||||||
use App\Data\AddToCartDTO;
|
use App\Data\Cart\AddToCartDTO;
|
||||||
use App\Data\CartDTO;
|
use App\Data\Cart\CartDTO;
|
||||||
use App\Enums\CartStatus;
|
use App\Enums\Cart\CartStatus;
|
||||||
use App\Models\Product;
|
use App\Models\Product;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Cart;
|
||||||
|
|
||||||
use App\Data\CartDTO;
|
use App\Data\Cart\CartDTO;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
final readonly class GetActiveUserCartAction
|
final readonly class GetActiveUserCartAction
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Cart;
|
||||||
|
|
||||||
use App\Enums\CartStatus;
|
use App\Enums\Cart\CartStatus;
|
||||||
use App\Models\Cart;
|
use App\Models\Cart;
|
||||||
|
|
||||||
final readonly class MarkCartAsConvertedAction
|
final readonly class MarkCartAsConvertedAction
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Cart;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Cart;
|
||||||
|
|
||||||
use App\Data\AddToCartDTO;
|
use App\Data\Cart\AddToCartDTO;
|
||||||
use App\Data\CartDTO;
|
use App\Data\Cart\CartDTO;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use InvalidArgumentException;
|
use InvalidArgumentException;
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Order;
|
||||||
|
|
||||||
use App\Data\OrderRequestDTO;
|
use App\Data\Order\OrderRequestDTO;
|
||||||
use App\Enums\CartStatus;
|
use App\Enums\Cart\CartStatus;
|
||||||
use App\Exceptions\StaleCartException;
|
use App\Exceptions\StaleCartException;
|
||||||
use App\Models\Address;
|
use App\Models\Address;
|
||||||
use App\Models\Cart;
|
use App\Models\Cart;
|
||||||
@ -1,8 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Payment;
|
||||||
|
|
||||||
use App\Enums\PaymentStatusEnum;
|
use App\Actions\Cart\MarkCartAsConvertedAction;
|
||||||
|
use App\Enums\Payment\PaymentStatusEnum;
|
||||||
use App\Models\Payment;
|
use App\Models\Payment;
|
||||||
use App\Models\PaymentStatus;
|
use App\Models\PaymentStatus;
|
||||||
use DB;
|
use DB;
|
||||||
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Payment;
|
||||||
|
|
||||||
use App\Data\PaymentResponseDTO;
|
use App\Data\Payment\PaymentResponseDTO;
|
||||||
use App\Enums\PaymentModes;
|
use App\Enums\Payment\PaymentModes;
|
||||||
use App\Enums\PaymentStatusEnum;
|
use App\Enums\Payment\PaymentStatusEnum;
|
||||||
use App\Models\Order;
|
use App\Models\Order;
|
||||||
use App\Models\PaymentStatus;
|
use App\Models\PaymentStatus;
|
||||||
use App\Services\Payment\PaymentGatewayFactory;
|
use App\Services\Payment\PaymentGatewayFactory;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Product;
|
||||||
|
|
||||||
use App\Data\UploadImageDTO;
|
use App\Data\Upload\UploadImageDTO;
|
||||||
|
|
||||||
final readonly class CreateProductAction
|
final readonly class CreateProductAction
|
||||||
{
|
{
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Product;
|
||||||
|
|
||||||
use App\Data\ProductCategoryDTO;
|
use App\Data\Product\ProductCategoryDTO;
|
||||||
use App\Models\ProductCategory;
|
use App\Models\ProductCategory;
|
||||||
|
|
||||||
final readonly class GetAllProductCategory
|
final readonly class GetAllProductCategory
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Stripe;
|
||||||
|
|
||||||
use App\Data\VerifiedCheckoutResponseDTO;
|
use App\Data\Payment\VerifiedCheckoutResponseDTO;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Log;
|
use Log;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\Upload;
|
||||||
|
|
||||||
use App\Data\UploadImageDTO;
|
use App\Data\Upload\UploadImageDTO;
|
||||||
|
|
||||||
final readonly class UploadImageAction
|
final readonly class UploadImageAction
|
||||||
{
|
{
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions;
|
namespace App\Actions\User;
|
||||||
|
|
||||||
use App\Data\RegisterDTO;
|
use App\Data\User\RegisterDTO;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
final readonly class CreateUserAction
|
final readonly class CreateUserAction
|
||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Contracts;
|
namespace App\Contracts;
|
||||||
|
|
||||||
use App\Data\PaymentResponseDTO;
|
use App\Data\Payment\PaymentResponseDTO;
|
||||||
use App\Models\Order;
|
use App\Models\Order;
|
||||||
|
|
||||||
interface PaymentGateway
|
interface PaymentGateway
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Address;
|
||||||
|
|
||||||
use App\Contracts\InputDataTransferObject;
|
use App\Contracts\InputDataTransferObject;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -16,6 +16,18 @@ public function __construct(
|
|||||||
public string $pinCode
|
public string $pinCode
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromRequest(FormRequest $request): InputDataTransferObject
|
||||||
|
{
|
||||||
|
return new self(
|
||||||
|
firstName: $request->firstName,
|
||||||
|
lastName: $request->lastName,
|
||||||
|
street: $request->street,
|
||||||
|
city: $request->city,
|
||||||
|
state: $request->state,
|
||||||
|
pinCode: $request->pinCode
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
@ -30,16 +42,4 @@ public function toArray(): array
|
|||||||
'pin' => $this->pinCode,
|
'pin' => $this->pinCode,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromRequest(FormRequest $request): InputDataTransferObject
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
firstName: $request->firstName,
|
|
||||||
lastName: $request->lastName,
|
|
||||||
street: $request->street,
|
|
||||||
city: $request->city,
|
|
||||||
state: $request->state,
|
|
||||||
pinCode: $request->pinCode
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Address;
|
||||||
|
|
||||||
use App\Contracts\InputDataTransferObject;
|
use App\Contracts\InputDataTransferObject;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -16,6 +16,18 @@ public function __construct(
|
|||||||
public ?string $pinCode = null,
|
public ?string $pinCode = null,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromRequest(FormRequest $request): InputDataTransferObject
|
||||||
|
{
|
||||||
|
return new self(
|
||||||
|
firstName: $request->input('firstName'),
|
||||||
|
lastName: $request->input('lastName'),
|
||||||
|
street: $request->input('street'),
|
||||||
|
city: $request->input('city'),
|
||||||
|
state: $request->input('state'),
|
||||||
|
pinCode: $request->input('pinCode'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string = null = null, mixed>
|
* @return array<string = null = null, mixed>
|
||||||
*/
|
*/
|
||||||
@ -32,16 +44,4 @@ public function toArray(): array
|
|||||||
|
|
||||||
return array_filter($data, fn ($value) => $value !== null);
|
return array_filter($data, fn ($value) => $value !== null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromRequest(FormRequest $request): InputDataTransferObject
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
firstName: $request->input('firstName'),
|
|
||||||
lastName: $request->input('lastName'),
|
|
||||||
street: $request->input('street'),
|
|
||||||
city: $request->input('city'),
|
|
||||||
state: $request->input('state'),
|
|
||||||
pinCode: $request->input('pinCode'),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Address;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use App\Models\Address;
|
use App\Models\Address;
|
||||||
@ -17,6 +17,19 @@ public function __construct(
|
|||||||
public string $pinCode
|
public string $pinCode
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromModel(Address $address): OutputDataTransferObject
|
||||||
|
{
|
||||||
|
return new self(
|
||||||
|
id: $address->id,
|
||||||
|
firstName: $address->first_name,
|
||||||
|
lastName: $address->last_name,
|
||||||
|
street: $address->street,
|
||||||
|
city: $address->city,
|
||||||
|
state: $address->state,
|
||||||
|
pinCode: $address->pin
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
@ -32,17 +45,4 @@ public function toArray(): array
|
|||||||
'pinCode' => $this->pinCode,
|
'pinCode' => $this->pinCode,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromModel(Address $address): OutputDataTransferObject
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
id: $address->id,
|
|
||||||
firstName: $address->first_name,
|
|
||||||
lastName: $address->last_name,
|
|
||||||
street: $address->street,
|
|
||||||
city: $address->city,
|
|
||||||
state: $address->state,
|
|
||||||
pinCode: $address->pin
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Cart;
|
||||||
|
|
||||||
use App\Contracts\InputDataTransferObject;
|
use App\Contracts\InputDataTransferObject;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -12,6 +12,14 @@ public function __construct(
|
|||||||
public int $quantity
|
public int $quantity
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromRequest(FormRequest $request): InputDataTransferObject
|
||||||
|
{
|
||||||
|
return new self(
|
||||||
|
productId: $request->productId,
|
||||||
|
quantity: $request->quantity
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
@ -22,12 +30,4 @@ public function toArray(): array
|
|||||||
'quantity' => $this->quantity,
|
'quantity' => $this->quantity,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromRequest(FormRequest $request): InputDataTransferObject
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
productId: $request->productId,
|
|
||||||
quantity: $request->quantity
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Cart;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use App\Models\Cart;
|
use App\Models\Cart;
|
||||||
@ -17,19 +17,6 @@ public function __construct(
|
|||||||
public array $items = []
|
public array $items = []
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
public function toArray(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'id' => $this->id,
|
|
||||||
'itemsCount' => $this->itemsCount,
|
|
||||||
'totalPrice' => $this->totalPrice,
|
|
||||||
'items' => $this->items,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function fromModel(Cart $cart)
|
public static function fromModel(Cart $cart)
|
||||||
{
|
{
|
||||||
return new self(
|
return new self(
|
||||||
@ -46,4 +33,17 @@ public static function fromModel(Cart $cart)
|
|||||||
))->toArray()
|
))->toArray()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function toArray(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => $this->id,
|
||||||
|
'itemsCount' => $this->itemsCount,
|
||||||
|
'totalPrice' => $this->totalPrice,
|
||||||
|
'items' => $this->items,
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Cart;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Order;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
@ -11,6 +11,12 @@ public function __construct(
|
|||||||
// TODO: Define your properties here
|
// TODO: Define your properties here
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromModel(Model $model): OutputDataTransferObject
|
||||||
|
{
|
||||||
|
return new self;
|
||||||
|
// TODO: Map model data to properties
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
@ -20,10 +26,4 @@ public function toArray(): array
|
|||||||
// TODO: Map properties to array
|
// TODO: Map properties to array
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromModel(Model $model): OutputDataTransferObject
|
|
||||||
{
|
|
||||||
return new self;
|
|
||||||
// TODO: Map model data to properties
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Order;
|
||||||
|
|
||||||
use App\Contracts\InputDataTransferObject;
|
use App\Contracts\InputDataTransferObject;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -12,6 +12,14 @@ public function __construct(
|
|||||||
public string $addressId,
|
public string $addressId,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromRequest(FormRequest $request): OrderRequestDTO
|
||||||
|
{
|
||||||
|
return new self(
|
||||||
|
cartId: $request->cartId,
|
||||||
|
addressId: $request->addressId,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
@ -22,12 +30,4 @@ public function toArray(): array
|
|||||||
'address_id' => $this->addressId,
|
'address_id' => $this->addressId,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromRequest(FormRequest $request): OrderRequestDTO
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
cartId: $request->cartId,
|
|
||||||
addressId: $request->addressId,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Payment;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use App\Enums\PaymentModes;
|
use App\Enums\Payment\PaymentModes;
|
||||||
|
|
||||||
final readonly class PaymentResponseDTO implements OutputDataTransferObject
|
final readonly class PaymentResponseDTO implements OutputDataTransferObject
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Payment;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Product;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use App\Models\ProductCategory;
|
use App\Models\ProductCategory;
|
||||||
@ -13,6 +13,15 @@ public function __construct(
|
|||||||
public string $slug,
|
public string $slug,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromModel(ProductCategory $category): self
|
||||||
|
{
|
||||||
|
return new self(
|
||||||
|
id: $category->id,
|
||||||
|
name: $category->name,
|
||||||
|
slug: $category->slug,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
@ -24,13 +33,4 @@ public function toArray(): array
|
|||||||
'slug' => $this->slug,
|
'slug' => $this->slug,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromModel(ProductCategory $category): self
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
id: $category->id,
|
|
||||||
name: $category->name,
|
|
||||||
slug: $category->slug,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Product;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use App\Models\Product;
|
use App\Models\Product;
|
||||||
@ -25,6 +25,24 @@ public function __construct(
|
|||||||
public ?bool $isFavorite = null
|
public ?bool $isFavorite = null
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromModel(Product $product): self
|
||||||
|
{
|
||||||
|
return new self(
|
||||||
|
id: $product->id,
|
||||||
|
title: $product->title,
|
||||||
|
slug: $product->slug,
|
||||||
|
description: $product->description,
|
||||||
|
actualPrice: $product->actual_price,
|
||||||
|
listPrice: $product->list_price,
|
||||||
|
category: ProductCategoryDTO::fromModel($product->category),
|
||||||
|
productImages: $product->images->map(fn (ProductImage $productImage) => ProductImageDTO::fromModel($productImage))->all(),
|
||||||
|
updatedAt: $product->updated_at,
|
||||||
|
createdAt: $product->created_at,
|
||||||
|
// this column is added by where exists query
|
||||||
|
isFavorite: $product->favorited_by_exists,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
@ -45,22 +63,4 @@ public function toArray(): array
|
|||||||
'isFavorite' => $this->isFavorite,
|
'isFavorite' => $this->isFavorite,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromModel(Product $product): self
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
id: $product->id,
|
|
||||||
title: $product->title,
|
|
||||||
slug: $product->slug,
|
|
||||||
description: $product->description,
|
|
||||||
actualPrice: $product->actual_price,
|
|
||||||
listPrice: $product->list_price,
|
|
||||||
category: ProductCategoryDTO::fromModel($product->category),
|
|
||||||
productImages: $product->images->map(fn (ProductImage $productImage) => ProductImageDTO::fromModel($productImage))->all(),
|
|
||||||
updatedAt: $product->updated_at,
|
|
||||||
createdAt: $product->created_at,
|
|
||||||
// this column is added by where exists query
|
|
||||||
isFavorite: $product->favorited_by_exists,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Product;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use App\Models\ProductImage;
|
use App\Models\ProductImage;
|
||||||
@ -13,6 +13,15 @@ public function __construct(
|
|||||||
public ?int $productId = null,
|
public ?int $productId = null,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public static function fromModel(ProductImage $productImage): self
|
||||||
|
{
|
||||||
|
return new self(
|
||||||
|
$productImage->id,
|
||||||
|
$productImage->path,
|
||||||
|
$productImage->product_id
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array<string, mixed>
|
* @return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
@ -24,13 +33,4 @@ public function toArray(): array
|
|||||||
'productId' => $this->productId,
|
'productId' => $this->productId,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromModel(ProductImage $productImage): self
|
|
||||||
{
|
|
||||||
return new self(
|
|
||||||
$productImage->id,
|
|
||||||
$productImage->path,
|
|
||||||
$productImage->product_id
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Stripe;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use App\Enums\StripeCurrency;
|
use App\Enums\Stripe\StripeCurrency;
|
||||||
|
|
||||||
final readonly class StripeLineItemDTO implements OutputDataTransferObject
|
final readonly class StripeLineItemDTO implements OutputDataTransferObject
|
||||||
{
|
{
|
||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Stripe;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
use App\Enums\StripePaymentMode;
|
use App\Enums\Stripe\StripePaymentMode;
|
||||||
|
|
||||||
final readonly class StripeSessionDataDTO implements OutputDataTransferObject
|
final readonly class StripeSessionDataDTO implements OutputDataTransferObject
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\Upload;
|
||||||
|
|
||||||
use App\Models\Product;
|
use App\Models\Product;
|
||||||
use Illuminate\Http\UploadedFile;
|
use Illuminate\Http\UploadedFile;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\User;
|
||||||
|
|
||||||
use App\Contracts\InputDataTransferObject;
|
use App\Contracts\InputDataTransferObject;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Data;
|
namespace App\Data\User;
|
||||||
|
|
||||||
use App\Contracts\OutputDataTransferObject;
|
use App\Contracts\OutputDataTransferObject;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\Cart;
|
||||||
|
|
||||||
enum CartStatus: string
|
enum CartStatus: string
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\Order;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open -> The order was placed or created. There is work to do for the order, which can include processing payment, fulfilling, or processing returns.
|
* Open -> The order was placed or created. There is work to do for the order, which can include processing payment, fulfilling, or processing returns.
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\Payment;
|
||||||
|
|
||||||
enum PaymentModes: string
|
enum PaymentModes: string
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\Payment;
|
||||||
|
|
||||||
enum PaymentStatusEnum: string
|
enum PaymentStatusEnum: string
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\Stripe;
|
||||||
|
|
||||||
enum StripeCurrency: string
|
enum StripeCurrency: string
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\Stripe;
|
||||||
|
|
||||||
enum StripeEventType: string
|
enum StripeEventType: string
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\Stripe;
|
||||||
|
|
||||||
enum StripePaymentMode: string
|
enum StripePaymentMode: string
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\User;
|
||||||
|
|
||||||
enum UserRoles: string
|
enum UserRoles: string
|
||||||
{
|
{
|
||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Data\UserDTO;
|
use App\Data\User\UserDTO;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
|||||||
@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Actions\AddProductToCartAction;
|
use App\Actions\Cart\AddProductToCartAction;
|
||||||
use App\Actions\GetActiveUserCartAction;
|
use App\Actions\Cart\GetActiveUserCartAction;
|
||||||
use App\Actions\RemoveProductFromCartAction;
|
use App\Actions\Cart\RemoveProductFromCartAction;
|
||||||
use App\Actions\UpdateProductInCartAction;
|
use App\Actions\Cart\UpdateProductInCartAction;
|
||||||
use App\Data\AddToCartDTO;
|
use App\Data\Cart\AddToCartDTO;
|
||||||
use App\Http\Requests\AddProductToCartRequest;
|
use App\Http\Requests\AddProductToCartRequest;
|
||||||
use App\Http\Requests\RemoveProductFromCartRequest;
|
use App\Http\Requests\RemoveProductFromCartRequest;
|
||||||
use App\Http\Requests\UpdateProductInCartRequest;
|
use App\Http\Requests\UpdateProductInCartRequest;
|
||||||
use App\Http\Resources\CartResource;
|
use App\Http\Resources\Cart\CartResource;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class CartController extends Controller
|
class CartController extends Controller
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Http\Resources\FavouriteProductResource;
|
use App\Http\Resources\Product\FavouriteProductResource;
|
||||||
use App\Models\FavouriteProduct;
|
use App\Models\FavouriteProduct;
|
||||||
use App\Models\Product;
|
use App\Models\Product;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Actions\CreateOrderAction;
|
use App\Actions\Order\CreateOrderAction;
|
||||||
use App\Data\OrderRequestDTO;
|
use App\Data\Order\OrderRequestDTO;
|
||||||
use App\Exceptions\StaleCartException;
|
use App\Exceptions\StaleCartException;
|
||||||
use App\Http\Requests\StoreOrderRequest;
|
use App\Http\Requests\StoreOrderRequest;
|
||||||
use App\Http\Requests\UpdateOrderRequest;
|
use App\Http\Requests\UpdateOrderRequest;
|
||||||
|
|||||||
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Actions\ProcessOrderPaymentAction;
|
use App\Actions\Payment\ProcessOrderPaymentAction;
|
||||||
use App\Actions\VerifyStripeSessionAction;
|
use App\Actions\Stripe\VerifyStripeSessionAction;
|
||||||
use App\Enums\PaymentModes;
|
use App\Enums\Payment\PaymentModes;
|
||||||
use App\Http\Requests\PaymentRequest;
|
use App\Http\Requests\PaymentRequest;
|
||||||
use App\Http\Requests\VerifyPaymentRequest;
|
use App\Http\Requests\VerifyPaymentRequest;
|
||||||
use App\Http\Resources\PaymentResource;
|
use App\Http\Resources\Payment\PaymentResource;
|
||||||
use App\Models\Order;
|
use App\Models\Order;
|
||||||
use App\Models\Payment;
|
use App\Models\Payment;
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Actions\GetAllProductCategory;
|
use App\Actions\Product\GetAllProductCategory;
|
||||||
|
|
||||||
class ProductCategoryController extends Controller
|
class ProductCategoryController extends Controller
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Data\ProductDTO;
|
use App\Data\Product\ProductDTO;
|
||||||
use App\Http\Requests\CreateProductRequest;
|
use App\Http\Requests\CreateProductRequest;
|
||||||
use App\Http\Resources\ProductResource;
|
use App\Http\Resources\Product\ProductResource;
|
||||||
use App\Models\Product;
|
use App\Models\Product;
|
||||||
use App\Queries\GetProductsQuery;
|
use App\Queries\GetProductsQuery;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Actions\UploadImageAction;
|
use App\Actions\Upload\UploadImageAction;
|
||||||
use App\Data\UploadImageDTO;
|
use App\Data\Upload\UploadImageDTO;
|
||||||
use App\Http\Requests\UploadImageRequest;
|
use App\Http\Requests\UploadImageRequest;
|
||||||
use App\Models\ProductImages;
|
use App\Models\ProductImages;
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Actions\CreateUserAction;
|
use App\Actions\User\CreateUserAction;
|
||||||
use App\Data\RegisterDTO;
|
use App\Data\User\RegisterDTO;
|
||||||
use App\Http\Requests\RegisterUserRequest;
|
use App\Http\Requests\RegisterUserRequest;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Actions\MarkPaymentAsPaidAction;
|
use App\Actions\Payment\MarkPaymentAsPaidAction;
|
||||||
use App\Enums\StripeEventType;
|
use App\Enums\Stripe\StripeEventType;
|
||||||
use App\Models\Payment;
|
use App\Models\Payment;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Log;
|
use Log;
|
||||||
|
|||||||
@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Actions\DeleteUserAddressAction;
|
use App\Actions\Address\DeleteUserAddressAction;
|
||||||
use App\Actions\SaveUserAddressAction;
|
use App\Actions\Address\SaveUserAddressAction;
|
||||||
use App\Actions\UpdateUserAddressAction;
|
use App\Actions\Address\UpdateUserAddressAction;
|
||||||
use App\Data\AddUserAddressRequestDTO;
|
use App\Data\Address\AddUserAddressRequestDTO;
|
||||||
use App\Data\UpdateUserAddressRequestDTO;
|
use App\Data\Address\UpdateUserAddressRequestDTO;
|
||||||
use App\Data\UserAddressResponseDTO;
|
use App\Data\Address\UserAddressResponseDTO;
|
||||||
use App\Http\Requests\AddUserAddressRequest;
|
use App\Http\Requests\AddUserAddressRequest;
|
||||||
use App\Http\Requests\UpdateUserAddressRequest;
|
use App\Http\Requests\UpdateUserAddressRequest;
|
||||||
use App\Http\Resources\AddressResource;
|
use App\Http\Resources\Address\AddressResource;
|
||||||
use App\Models\Address;
|
use App\Models\Address;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use App\Enums\PaymentModes;
|
use App\Enums\Payment\PaymentModes;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Address;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\ResourceCollection;
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Address;
|
||||||
|
|
||||||
use App\Data\UserAddressResponseDTO;
|
use App\Data\Address\UserAddressResponseDTO;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Cart;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\ResourceCollection;
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Cart;
|
||||||
|
|
||||||
use App\Data\CartItemDTO;
|
use App\Data\Cart\CartItemDTO;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Cart;
|
||||||
|
|
||||||
use App\Data\CartDTO;
|
use App\Data\Cart\CartDTO;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Order;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Payment;
|
||||||
|
|
||||||
use App\Data\PaymentResponseDTO;
|
use App\Data\Payment\PaymentResponseDTO;
|
||||||
use App\Models\Payment;
|
use App\Models\Payment;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Product;
|
||||||
|
|
||||||
use App\Models\FavouriteProduct;
|
use App\Models\FavouriteProduct;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Product;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\ResourceCollection;
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources\Product;
|
||||||
|
|
||||||
use App\Data\ProductDTO;
|
use App\Data\Product\ProductDTO;
|
||||||
use App\Data\ProductImageDTO;
|
use App\Data\Product\ProductImageDTO;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use App\Enums\CartStatus;
|
use App\Enums\Cart\CartStatus;
|
||||||
use Illuminate\Database\Eloquent\Attributes\Scope;
|
use Illuminate\Database\Eloquent\Attributes\Scope;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
@ -16,16 +16,6 @@ class Cart extends Model
|
|||||||
{
|
{
|
||||||
protected $fillable = ['user_id', 'status'];
|
protected $fillable = ['user_id', 'status'];
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array<string, string>
|
|
||||||
*/
|
|
||||||
protected function casts(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'status' => CartStatus::class,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function products(): BelongsToMany
|
public function products(): BelongsToMany
|
||||||
{
|
{
|
||||||
return $this->belongsToMany(Product::class)
|
return $this->belongsToMany(Product::class)
|
||||||
@ -43,6 +33,16 @@ public function order(): BelongsTo
|
|||||||
return $this->belongsTo(Order::class);
|
return $this->belongsTo(Order::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, string>
|
||||||
|
*/
|
||||||
|
protected function casts(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'status' => CartStatus::class,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
#[Scope]
|
#[Scope]
|
||||||
protected function active(Builder $query)
|
protected function active(Builder $query)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||||
use App\Enums\UserRoles;
|
use App\Enums\User\UserRoles;
|
||||||
use Database\Factories\UserFactory;
|
use Database\Factories\UserFactory;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
@ -45,18 +45,9 @@ class User extends Authenticatable
|
|||||||
'remember_token',
|
'remember_token',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
public function hasFavorited(Product $product): bool
|
||||||
* Get the attributes that should be cast.
|
|
||||||
*
|
|
||||||
* @return array<string, string>
|
|
||||||
*/
|
|
||||||
protected function casts(): array
|
|
||||||
{
|
{
|
||||||
return [
|
return $this->favoriteProducts()->where('product_id', $product->id)->exists();
|
||||||
'email_verified_at' => 'datetime',
|
|
||||||
'password' => 'hashed',
|
|
||||||
'role' => UserRoles::class,
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function favoriteProducts(): BelongsToMany
|
public function favoriteProducts(): BelongsToMany
|
||||||
@ -64,11 +55,6 @@ public function favoriteProducts(): BelongsToMany
|
|||||||
return $this->belongsToMany(Product::class, 'favorite_products', 'user_id', 'product_id');
|
return $this->belongsToMany(Product::class, 'favorite_products', 'user_id', 'product_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function hasFavorited(Product $product): bool
|
|
||||||
{
|
|
||||||
return $this->favoriteProducts()->where('product_id', $product->id)->exists();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return HasMany<Cart>
|
* @return HasMany<Cart>
|
||||||
*/
|
*/
|
||||||
@ -92,4 +78,18 @@ public function orders(): HasMany
|
|||||||
{
|
{
|
||||||
return $this->hasMany(Order::class);
|
return $this->hasMany(Order::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the attributes that should be cast.
|
||||||
|
*
|
||||||
|
* @return array<string, string>
|
||||||
|
*/
|
||||||
|
protected function casts(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'email_verified_at' => 'datetime',
|
||||||
|
'password' => 'hashed',
|
||||||
|
'role' => UserRoles::class,
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Services\Payment;
|
namespace App\Services\Payment;
|
||||||
|
|
||||||
use App\Enums\PaymentModes;
|
use App\Enums\Payment\PaymentModes;
|
||||||
|
|
||||||
class PaymentGatewayFactory
|
class PaymentGatewayFactory
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,12 +3,12 @@
|
|||||||
namespace App\Services\Payment;
|
namespace App\Services\Payment;
|
||||||
|
|
||||||
use App\Contracts\PaymentGateway;
|
use App\Contracts\PaymentGateway;
|
||||||
use App\Data\PaymentResponseDTO;
|
use App\Data\Payment\PaymentResponseDTO;
|
||||||
use App\Data\StripeLineItemDTO;
|
use App\Data\Stripe\StripeLineItemDTO;
|
||||||
use App\Data\StripeSessionDataDTO;
|
use App\Data\Stripe\StripeSessionDataDTO;
|
||||||
use App\Enums\PaymentModes;
|
use App\Enums\Payment\PaymentModes;
|
||||||
use App\Enums\StripeCurrency;
|
use App\Enums\Stripe\StripeCurrency;
|
||||||
use App\Enums\StripePaymentMode;
|
use App\Enums\Stripe\StripePaymentMode;
|
||||||
use App\Models\Order;
|
use App\Models\Order;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Enums\UserRoles;
|
use App\Enums\User\UserRoles;
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Enums\CartStatus;
|
use App\Enums\Cart\CartStatus;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Enums\OrderStatus;
|
use App\Enums\Order\OrderStatus;
|
||||||
use App\Models\Cart;
|
use App\Models\Cart;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
use App\Enums\PaymentStatusEnum;
|
use App\Enums\Payment\PaymentStatusEnum;
|
||||||
use App\Models\PaymentStatus;
|
use App\Models\PaymentStatus;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user