<?php

namespace App\Modules\Inventory\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\WithStyles;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;

class InstructionSheet implements FromCollection, WithHeadings, WithTitle, WithStyles
{
    public function title(): string
    {
        return '填寫說明';
    }

    public function headings(): array
    {
        return [
            '欄位名稱',
            '是否必填',
            '填寫說明',
        ];
    }

    public function collection()
    {
        return collect([
            ['商品代號', '選填', '2-8 碼，若未填寫系統將自動生成。若代號已存在，將更新該商品資料。'],
            ['條碼', '選填', '13 碼數字，若未填寫系統將自動生成。若條碼已存在（優先比對），將更新該商品資料。'],
            ['商品名稱', '必填', '請填寫完整商品名稱。'],
            ['類別名稱', '必填', '必須為系統中已存在的類別名稱（如：飲品）。'],
            ['品牌', '選填', '商品品牌名稱。'],
            ['規格', '選填', '商品規格描述（如：25kg/袋）。'],
            ['基本單位', '必填', '必須為系統中已存在的單位名稱（如：瓶、個）。'],
            ['大單位', '選填', '若有大單位換算請填寫（如：箱）。'],
            ['換算率', '若有大單位則必填', '1 個大單位等於多少個基本單位。'],
            ['成本價', '選填', '數字，預設為 0。'],
            ['售價', '選填', '數字，預設為 0。'],
            ['會員價', '選填', '數字，預設為 0。'],
            ['批發價', '選填', '數字，預設為 0。'],
        ]);
    }

    public function styles(Worksheet $sheet)
    {
        return [
            // 第一行標題粗體
            1 => ['font' => ['bold' => true]],
            // 欄位寬度自動
        ];
    }
}
