<?php

    namespace Modules\Lpj\Exports;

    use Maatwebsite\Excel\Concerns\FromCollection;
    use Maatwebsite\Excel\Concerns\WithColumnFormatting;
    use Maatwebsite\Excel\Concerns\WithHeadings;
    use Maatwebsite\Excel\Concerns\WithMapping;
    use Modules\Lpj\Models\JenisDokumen;
    use PhpOffice\PhpSpreadsheet\Style\NumberFormat;

    class JenisDokumenExport implements WithColumnFormatting, WithHeadings, FromCollection, withMapping
    {
        public function collection()
        {
            return JenisDokumen::all();
        }

        public function map($row)
        : array
        {
            return [
                $row->id,
                $row->name,
                $row->max_size,
                $row->description,
                $row->created_at
            ];
        }

        public function headings()
        : array
        {
            return [
                'ID',
                'Name',
                'Max Size',
                'Description',
                'Created At'
            ];
        }

        public function columnFormats()
        : array
        {
            return [
                'A' => NumberFormat::FORMAT_NUMBER,
                'E' => NumberFormat::FORMAT_DATE_DATETIME
            ];
        }
    }
