From d7131dd5f802bd3dc56167a3fa3379422a53f93f Mon Sep 17 00:00:00 2001 From: Fairuz Date: Fri, 23 Jul 2021 12:41:06 +0800 Subject: [PATCH] WIP - Order steps & remaining APIs --- .../Processors/CreateOrderProcessor.php | 6 ++ .../ControllersLogic/CreateRemarkLogic.php | 25 ++---- .../ControllersLogic/UpdateRemarkLogic.php | 18 ++-- .../DataTransferObjects/RemarkObject.php | 86 +++---------------- .../Remarks/Services/CreatesRemark.php | 15 ++-- .../Remarks/Services/UpdatesRemark.php | 11 +-- .../Standards/Validators/RemarkValidation.php | 9 +- .../ControllersLogic/CreateScheduleLogic.php | 28 ++---- .../ControllersLogic/DeleteScheduleLogic.php | 16 +--- .../ControllersLogic/FetchScheduleLogic.php | 13 +-- .../ControllersLogic/ListSchedulesLogic.php | 13 +-- .../ControllersLogic/UpdateScheduleLogic.php | 20 ++--- .../DataTransferObjects/ScheduleObject.php | 81 +++++------------ .../Schedules/Services/CreatesSchedule.php | 17 ++-- .../Schedules/Services/UpdatesSchedule.php | 11 +-- .../Validators/ScheduleValidation.php | 10 +-- app/Http/Resources/PackageResource.php | 31 +++++++ app/Http/Resources/PackingListResource.php | 23 +++++ app/Http/Resources/RemarkResource.php | 23 +++++ app/Http/Resources/ScheduleResource.php | 24 ++++++ app/Http/Resources/TransportResource.php | 27 ++++++ app/Models/User.php | 8 ++ 22 files changed, 239 insertions(+), 276 deletions(-) create mode 100644 app/Http/Resources/PackageResource.php create mode 100644 app/Http/Resources/PackingListResource.php create mode 100644 app/Http/Resources/RemarkResource.php create mode 100644 app/Http/Resources/ScheduleResource.php create mode 100644 app/Http/Resources/TransportResource.php diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php index 4d5ec2f7..85e5ae50 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php @@ -32,6 +32,12 @@ class CreateOrderProcessor public function execute(Request $request){ + //TODO: Generate internal reference number + //faker->numberBetween(1000000, 9999999), + + //TODO: Call Unity to create contract and get contract reference no (and all the obligations) + //$contract_reference_no = 99; + $order_object = new OrderObject($request->get('company_module_id'), $request->get('reference'), '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING); $this->canCreateOrder->passes($order_object); diff --git a/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php index 4eb7665e..81aa054b 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/CreateRemarkLogic.php @@ -5,10 +5,9 @@ namespace App\Classes\Modules\Remarks\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Remarks\Services\CreatesRemark; -use App\Classes\Modules\Remarks\Services\FetchesDistrict; use App\Classes\Modules\Remarks\Standards\Rules\CanCreateRemark; use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject; -use App\Classes\Modules\Companies\Services\FetchesCompany; +use App\Classes\Modules\Accounts\Services\FetchesUser; use App\Http\Resources\RemarkResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -30,28 +29,22 @@ class CreateRemarkLogic extends AbstractControllerLogic /** @var CanCreateRemark */ private $canCreateRemark; - /** @var FetchesDistrict */ - private $fetchesDistrict; - - /** @var FetchesCompany */ - private $fetchesCompany; - /** @var CreatesRemark */ private $createsRemark; + /** @var FetchesUser */ + private $fetchesUser; + /** * CreateRemarkLogic constructor. * @param CanCreateRemark $canCreateRemark - * @param FetchesDistrict $fetchesDistrict - * @param FetchesCompany $fetchesCompany * @param CreatesRemark $createsRemark */ - public function __construct(CanCreateRemark $canCreateRemark, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesRemark $createsRemark) + public function __construct(CanCreateRemark $canCreateRemark, CreatesRemark $createsRemark, FetchesUser $fetchesUser) { $this->canCreateRemark = $canCreateRemark; - $this->fetchesDistrict = $fetchesDistrict; - $this->fetchesCompany = $fetchesCompany; $this->createsRemark = $createsRemark; + $this->fetchesUser = $fetchesUser; } /** @@ -64,13 +57,11 @@ class CreateRemarkLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - - $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $object = new RemarkObject($request->input('comment'), $request->input('commenter_id')); $this->canCreateRemark->passes($object); - $query = $this->createsRemark->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $query = $this->createsRemark->execute($this->fetches->execute(['id' => $request->input('commenter_id')]), $object); return $this->resourceResponse(new RemarkResource($query)); diff --git a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php index 020906eb..c29799dd 100644 --- a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php +++ b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php @@ -62,24 +62,16 @@ class UpdateRemarkLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new RemarkObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new RemarkObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $object = new RemarkObject($request->input('comment'), $request->input('commenter_id')); - $this->canUpdateRemark->passes($object); + $this->canUpdateRemark->passes($object); - $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); + $query = $this->fetchesRemark->execute(['id' => $request->route('id')]); - $query = $this->updatesRemark->execute($query, $object); + $query = $this->updatesRemark->execute($query, $object); - return $this->resourceResponse(new RemarkResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + return $this->resourceResponse(new RemarkResource($query)); } diff --git a/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php b/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php index 67beaa30..e0c509e6 100644 --- a/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php +++ b/app/Classes/Modules/Remarks/DataTransferObjects/RemarkObject.php @@ -7,90 +7,32 @@ use App\Classes\General\Interfaces\DataTransferObject; class RemarkObject implements DataTransferObject { - /** @var string */ - private $streetOne; + /** @var int */ + private $commenterID; - /** @var string|null */ - private $streetTwo; + /** @var string*/ + private $comment;; - /** @var int */ - private $countryId; - - /** @var int */ - private $stateId; - - /** @var int */ - private $districtId; - - /** @var int */ - private $postCode; + public function __construct(int $commenterID, string $comment) + { + $this->commenterID = $commenterID; + $this->comment = $comment; + } /** - * RemarkObject constructor. - * @param string $streetOne - * @param null|string $streetTwo - * @param int $countryId - * @param int $stateId - * @param int $districtId - * @param int $postCode + * @return int */ - public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode) + public function getCommenterId(): string { - $this->streetOne = $streetOne; - $this->streetTwo = $streetTwo; - $this->countryId = $countryId; - $this->stateId = $stateId; - $this->districtId = $districtId; - $this->postCode = $postCode; + return $this->commenterID; } /** * @return string */ - public function getStreetOne(): string + public function getComment(): ?string { - return $this->streetOne; + return $this->comment; } - /** - * @return null|string - */ - public function getStreetTwo(): ?string - { - return $this->streetTwo; - } - - /** - * @return int - */ - public function getCountryId(): int - { - return $this->countryId; - } - - /** - * @return int - */ - public function getStateId(): int - { - return $this->stateId; - } - - /** - * @return int - */ - public function getDistrictId(): int - { - return $this->districtId; - } - - /** - * @return int - */ - public function getPostCode(): int - { - return $this->postCode; - } - - } diff --git a/app/Classes/Modules/Remarks/Services/CreatesRemark.php b/app/Classes/Modules/Remarks/Services/CreatesRemark.php index c4067869..9bfe3303 100644 --- a/app/Classes/Modules/Remarks/Services/CreatesRemark.php +++ b/app/Classes/Modules/Remarks/Services/CreatesRemark.php @@ -6,7 +6,7 @@ use App\Classes\General\Eloquent\AbstractUpdateRecord; use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject; use App\Models\Remark; -use App\Models\Company; +use App\Models\User; class CreatesRemark extends AbstractUpdateRelationshipRecord { @@ -17,16 +17,13 @@ class CreatesRemark extends AbstractUpdateRelationshipRecord * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Company $company, RemarkObject $object) { + public function execute(User $user, RemarkObject $object) { $model = new Remark(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); - return $this->handler($company->Remarks(), $model); + $model->commenter_id = $object->getCommenterId(); + $model->comment = $object->getComment(); + + return $this->handler($user->remarks(), $model); } } diff --git a/app/Classes/Modules/Remarks/Services/UpdatesRemark.php b/app/Classes/Modules/Remarks/Services/UpdatesRemark.php index 082e2281..6d0c61eb 100644 --- a/app/Classes/Modules/Remarks/Services/UpdatesRemark.php +++ b/app/Classes/Modules/Remarks/Services/UpdatesRemark.php @@ -17,15 +17,8 @@ class UpdatesRemark extends AbstractUpdateRecord */ public function execute(Remark $model, RemarkObject $object) { - //$model->company_id = $object->getCompanyId(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->district_id = $object->getDistrictId(); - $model->state_id = $object->getStateId(); - $model->postcode = $object->getPostCode(); - $model->country_id = $object->getCountryId(); - //$model->default = $object->getDefault(); - //$model->billing = $object->getBilling(); + $model->commenter_id = $object->getCommenterId(); + $model->comment = $object->getComment(); return $this->handler($model); diff --git a/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php b/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php index 25c9dfee..afbd8b82 100644 --- a/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php +++ b/app/Classes/Modules/Remarks/Standards/Validators/RemarkValidation.php @@ -16,9 +16,8 @@ class RemarkValidation extends AbstractValidation */ protected function data($object): array { return [ - 'street_one' => $object->getStreetOne(), - 'street_two' => $object->getStreetTwo(), - 'district_id' => $object->getDistrictId() + 'commenter_id' => $object->getCommenterId(), + 'comment' => $object->getComment(), ]; } @@ -27,8 +26,8 @@ class RemarkValidation extends AbstractValidation */ protected function rules(): array { return [ - 'street_one' => 'required', - 'district_id' => 'required', + 'commenter_id' => 'required', + 'comment' => 'required', ]; } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php index 06ca06a8..17ad9d62 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php @@ -2,13 +2,11 @@ namespace App\Classes\Modules\Schedules\ControllersLogic; - use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Schedules\Services\CreatesSchedule; -use App\Classes\Modules\Schedules\Services\FetchesDistrict; use App\Classes\Modules\Schedules\Standards\Rules\CanCreateSchedule; use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject; -use App\Classes\Modules\Companies\Services\FetchesCompany; +use App\Classes\Modules\Transports\Services\FetchesTransport; use App\Http\Resources\ScheduleResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -16,7 +14,6 @@ use Illuminate\Http\Request; class CreateScheduleLogic extends AbstractControllerLogic { - /** * @return array */ @@ -30,11 +27,8 @@ class CreateScheduleLogic extends AbstractControllerLogic /** @var CanCreateSchedule */ private $canCreateSchedule; - /** @var FetchesDistrict */ - private $fetchesDistrict; - - /** @var FetchesCompany */ - private $fetchesCompany; + /** @var FetchesTransport */ + private $fetchesTransport; /** @var CreatesSchedule */ private $createsSchedule; @@ -42,15 +36,13 @@ class CreateScheduleLogic extends AbstractControllerLogic /** * CreateScheduleLogic constructor. * @param CanCreateSchedule $canCreateSchedule - * @param FetchesDistrict $fetchesDistrict - * @param FetchesCompany $fetchesCompany + * @param FetchesTransport $fetchesTransport * @param CreatesSchedule $createsSchedule */ - public function __construct(CanCreateSchedule $canCreateSchedule, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesSchedule $createsSchedule) + public function __construct(CanCreateSchedule $canCreateSchedule, FetchesTransport $fetchesTransport, CreatesSchedule $createsSchedule) { $this->canCreateSchedule = $canCreateSchedule; - $this->fetchesDistrict = $fetchesDistrict; - $this->fetchesCompany = $fetchesCompany; + $this->fetchesTransport = $fetchesTransport; $this->createsSchedule = $createsSchedule; } @@ -63,17 +55,13 @@ class CreateScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - - $object = new ScheduleObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); + $object = new ScheduleObject($request->input('etd'), $request->input('eta'), $request->input('transport_id')); $this->canCreateSchedule->passes($object); - $query = $this->createsSchedule->execute($this->fetchesCompany->execute(['id' => $request->input('company_id')]), $object); + $query = $this->createsSchedule->execute($this->fetchesTransport->execute(['id' => $request->input('transport_id')]), $object); return $this->resourceResponse(new ScheduleResource($query)); - } } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php index 2d0f62e7..06184388 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/DeleteScheduleLogic.php @@ -46,7 +46,6 @@ class DeleteScheduleLogic extends AbstractControllerLogic $this->fetchesSchedule = $fetchesSchedule; } - /** * @param Request $request * @return JsonResponse @@ -54,20 +53,13 @@ class DeleteScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canDeleteSchedule->passes(); - $this->canDeleteSchedule->passes(); + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - - $this->deletesSchedule->execute($query); - - return $this->response([]); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $this->deletesSchedule->execute($query); + return $this->response([]); } } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php index 2c36a0d1..7b5bd11f 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/FetchScheduleLogic.php @@ -49,18 +49,11 @@ class FetchScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canFetchSchedule->passes(); - $this->canFetchSchedule->passes(); - - $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - - return $this->resourceResponse(new ScheduleResource($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); + return $this->resourceResponse(new ScheduleResource($query)); } } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php index 17f4dee8..d0666763 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/ListSchedulesLogic.php @@ -49,18 +49,11 @@ class ListSchedulesLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $this->canListSchedules->passes(); - $this->canListSchedules->passes(); - - $query = $this->listsSchedules->execute($this->listsSchedules->deserializeFilters($request->input('filters'))); - - return $this->collectionResponse(ScheduleResource::collection($query)); - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->listsSchedules->execute($this->listsSchedules->deserializeFilters($request->input('filters'))); + return $this->collectionResponse(ScheduleResource::collection($query)); } } diff --git a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php index b8589cf6..803fa119 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/UpdateScheduleLogic.php @@ -62,25 +62,15 @@ class UpdateScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - try { + $object = new ScheduleObject($request->input('etd'), $request->input('eta')); - $district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]); - $object = new ScheduleObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code')); - //$object = new ScheduleObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing')); + $this->canUpdateSchedule->passes($object); - $this->canUpdateSchedule->passes($object); + $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); - - $query = $this->updatesSchedule->execute($query, $object); - - return $this->resourceResponse(new ScheduleResource($query)); - - - } catch (\Exception $exception){ - throw new ErrorException($exception->getMessage(), $exception->getCode()); - } + $query = $this->updatesSchedule->execute($query, $object); + return $this->resourceResponse(new ScheduleResource($query)); } } diff --git a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php index 9a85301d..b92211d3 100644 --- a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php +++ b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php @@ -3,94 +3,55 @@ namespace App\Classes\Modules\Schedules\DataTransferObjects; use App\Classes\General\Interfaces\DataTransferObject; +use Carbon\Carbon; class ScheduleObject implements DataTransferObject { - /** @var string */ - private $streetOne; + /** @var Carbonn date */ + private $etd; - /** @var string|null */ - private $streetTwo; + /** @var Carbon date */ + private $eta; /** @var int */ - private $countryId; - - /** @var int */ - private $stateId; - - /** @var int */ - private $districtId; - - /** @var int */ - private $postCode; + private $transport_id; /** - * ScheduleObject constructor. - * @param string $streetOne - * @param null|string $streetTwo - * @param int $countryId - * @param int $stateId - * @param int $districtId - * @param int $postCode + * ScheduleObject constructor + * @param int $etd + * @param int $eta + * @param int $transport_id */ - public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode) + public function __construct(string $etd, string $eta, int $transport_id) { - $this->streetOne = $streetOne; - $this->streetTwo = $streetTwo; - $this->countryId = $countryId; - $this->stateId = $stateId; - $this->districtId = $districtId; - $this->postCode = $postCode; + $this->etd = $etd; + $this->eta = $eta; + $this->transport_id = $transport_id; } /** * @return string */ - public function getStreetOne(): string + public function getETD(): Carbon { - return $this->streetOne; + return $this->completed_date ? Carbon::parse($this->etd); } /** - * @return null|string + * @return string */ - public function getStreetTwo(): ?string + public function getETA(): Carbon { - return $this->streetTwo; + return $this->completed_date ? Carbon::parse($this->eta); } /** * @return int */ - public function getCountryId(): int + public function getTransportId(): int { - return $this->countryId; + return $this->transport_id; } - /** - * @return int - */ - public function getStateId(): int - { - return $this->stateId; - } - - /** - * @return int - */ - public function getDistrictId(): int - { - return $this->districtId; - } - - /** - * @return int - */ - public function getPostCode(): int - { - return $this->postCode; - } - - } diff --git a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php index 2cb67a6f..20a064e3 100644 --- a/app/Classes/Modules/Schedules/Services/CreatesSchedule.php +++ b/app/Classes/Modules/Schedules/Services/CreatesSchedule.php @@ -6,27 +6,24 @@ use App\Classes\General\Eloquent\AbstractUpdateRecord; use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject; use App\Models\Schedule; -use App\Models\Company; +use App\Models\TransportArrangement; class CreatesSchedule extends AbstractUpdateRelationshipRecord { /** - * @param Company $company + * @param TransportArrangement $transport * @param ScheduleObject $object * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Company $company, ScheduleObject $object) { + public function execute(TransportArrangement $transport, ScheduleObject $object) { $model = new Schedule(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->country_id = $object->getCountryId(); - $model->state_id = $object->getStateId(); - $model->district_id = $object->getDistrictId(); - $model->postcode = $object->getPostCode(); + $model->etd = $object->getETD(); + $model->eta = $object->getETA(); + $model->transport_id = $object->getTransportId(); - return $this->handler($company->Schedules(), $model); + return $this->handler($transport->schedules(), $model); } } diff --git a/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php b/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php index 84e9491c..f7105824 100644 --- a/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php +++ b/app/Classes/Modules/Schedules/Services/UpdatesSchedule.php @@ -17,15 +17,8 @@ class UpdatesSchedule extends AbstractUpdateRecord */ public function execute(Schedule $model, ScheduleObject $object) { - //$model->company_id = $object->getCompanyId(); - $model->street_one = $object->getStreetOne(); - $model->street_two = $object->getStreetTwo(); - $model->district_id = $object->getDistrictId(); - $model->state_id = $object->getStateId(); - $model->postcode = $object->getPostCode(); - $model->country_id = $object->getCountryId(); - //$model->default = $object->getDefault(); - //$model->billing = $object->getBilling(); + $model->etd = $object->getETD(); + $model->eta = $object->getETA(); return $this->handler($model); diff --git a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php index 4039e0ee..26352de4 100644 --- a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php +++ b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php @@ -16,9 +16,8 @@ class ScheduleValidation extends AbstractValidation */ protected function data($object): array { return [ - 'street_one' => $object->getStreetOne(), - 'street_two' => $object->getStreetTwo(), - 'district_id' => $object->getDistrictId() + 'etd' => $object->getETD(), + 'eta' => $object->getETA(), ]; } @@ -27,8 +26,9 @@ class ScheduleValidation extends AbstractValidation */ protected function rules(): array { return [ - 'street_one' => 'required', - 'district_id' => 'required', + 'transport_id' => 'required', + 'etd' => 'required', + 'eta' => 'required', ]; } diff --git a/app/Http/Resources/PackageResource.php b/app/Http/Resources/PackageResource.php new file mode 100644 index 00000000..0c1530b8 --- /dev/null +++ b/app/Http/Resources/PackageResource.php @@ -0,0 +1,31 @@ + $this->id, + 'order_id' => $this->order_id, + 'claimant_id' => $this->claimant_id, + 'type' => $this->type, + 'description' => $this->description, + 'width' => $this->width, + 'height' => $this->height, + 'length' => $this->length, + 'weight' => $this->weight, + 'quantity' => $this->quantity, + 'status' => $this->status, + ]; + } +} diff --git a/app/Http/Resources/PackingListResource.php b/app/Http/Resources/PackingListResource.php new file mode 100644 index 00000000..a143d523 --- /dev/null +++ b/app/Http/Resources/PackingListResource.php @@ -0,0 +1,23 @@ + $this->id, + 'reference' => $this->reference, + 'status' => $this->status, + ]; + } +} diff --git a/app/Http/Resources/RemarkResource.php b/app/Http/Resources/RemarkResource.php new file mode 100644 index 00000000..72721f02 --- /dev/null +++ b/app/Http/Resources/RemarkResource.php @@ -0,0 +1,23 @@ + $this->id, + 'commenter_id' => $this->commenter_id, + 'comment' => $this->comment, + ]; + } +} diff --git a/app/Http/Resources/ScheduleResource.php b/app/Http/Resources/ScheduleResource.php new file mode 100644 index 00000000..702fb642 --- /dev/null +++ b/app/Http/Resources/ScheduleResource.php @@ -0,0 +1,24 @@ + $this->id, + 'etd' => $this->etd, + 'eta' => $this->eta, + 'status' => $this->status, + ]; + } +} diff --git a/app/Http/Resources/TransportResource.php b/app/Http/Resources/TransportResource.php new file mode 100644 index 00000000..86e894cf --- /dev/null +++ b/app/Http/Resources/TransportResource.php @@ -0,0 +1,27 @@ + $this->id, + 'type' => $this->type, + 'courier' => $this->courier, + 'tracking_number' => $this->tracking_number, + 'dispatch_date' => $this->dispatch_date, + 'drop_date' => $this->drop_date, + 'status' => $this->status, + ]; + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 33da7042..dccda6d2 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -73,4 +73,12 @@ class User extends AbstractModel implements { return $this->morphMany(Contact::class, 'owner'); } + + /** + * @return MorphMany + */ + public function remarks(): morphMany + { + return $this->morphMany(Remark::class, 'owner'); + } }