<?php

namespace App\Exports;

use App\Http\Enum\AfterSaleOrderStatusEnum;
use App\Models\DailyReport;
use App\Models\Shop;
use Illuminate\Support\Facades\Log;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Illuminate\Support\Collection;

class BusinessAfterOrderExport implements FromCollection, ShouldAutoSize
{
    private $data;

    public function __construct($orders)
    {
        $this->data = $this->createData($orders);
    }

    /**
     * @return \Illuminate\Support\Collection
     */
    public function collection()
    {
        return new Collection($this->data);
    }


    private function createData($orders)
    {
        $headTitle = [
            '父订单编号',
            '店铺名称',
            '退款金额',
            '用户申请退运费金额',
            '退款原因',
            '描述',
            '申请类型',
            '售后单状态',
            '售后单创建时间',
            '图片链接',
        ];
        $bodyData = [];
        foreach ($orders as $order) {
            $bodyData[] = [
                $order['order_sn'],
                $order['shop']['name'],
                bcdiv($order['refund_amount'], 100, 2),
                bcdiv($order['refund_shipping_amount'], 100, 2),
                $order['reason'],
                $order['description'],
                empty($order['apply_type']) ? "仅退款" : "退货退款",
                AfterSaleOrderStatusEnum::getData($order['after_sales_status']),
                $order['after_sale_created_at'],
                implode(",", $order['image_list'])
            ];
        }

        return [$headTitle, $bodyData];
    }
}
