* * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace App\Repositories\Transformers; use App\Models\Order; use App\Repositories\Enums\OrderStatusEnum; use App\Repositories\Enums\OrderTypeEnum; use App\Repositories\Enums\OrderWorkTypeCodeEnum; use App\Repositories\Enums\PayStatusEnum; use League\Fractal\TransformerAbstract; class OrderTransformer extends TransformerAbstract { public function transform(Order $order) { $data = [ 'id' => $order->id, 'no' => $order->no, 'type' => $order->type, 'type_text' => OrderTypeEnum::getDescription($order->type), 'work_type' => $order->work_type, 'work_type_text' => OrderWorkTypeCodeEnum::getDescription($order->work_type), 'work_time' => $order->work_time, 'start_use_time' => $order->start_use_time, 'end_use_time' => $order->end_use_time, 'time_money' => $order->time_money, 'preferential_money' => $order->preferential_money, 'total_money' => $order->total_money, 'pay_status' => $order->pay_status, 'pay_status_text' => PayStatusEnum::getDescription($order->pay_status), 'pay_money' => $order->pay_money, 'pay_time' => $order->pay_time, 'status' => $order->status, 'user' => $order->type == 0 ? $order->user()->select(['mobile', 'avatar', 'nickname'])->first() : [], 'status_text' => OrderStatusEnum::getDescription($order->status), 'created_at' => $order->created_at, 'updated_at' => $order->updated_at, 'shop' => $this->getShop($order), 'device' => $this->getDevice($order), ]; return $data; } public function getShop($order) { return $order->shop->only(['name', 'address']); } public function getDevice($order) { return $order->device->only(['no']); } }