<?php
namespace App\Exports;

use VisitorContact;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;

class VisitorContactsExport implements FromCollection, WithHeadings, WithMapping
{
    public function collection()
    {
        $query = VisitorContact::query();

        $query->select([
            'visitor_contacts.id', 'visitor_contacts.created_at', 'first_name', 'last_name',
            'visitors.email', 'company as organisation', 'country as country', 'contacts.name as contact',
            'contacts.email as contact_email', 'visitor_contacts.page_url as page', 'message'
        ]);
        $query->join('visitors', 'visitor_contacts.visitor_id', '=', 'visitors.id');
        $query->join('contacts', 'visitor_contacts.contact_id', '=', 'contacts.id');
        $query->orderBy('visitor_contacts.created_at', 'desc');
        return $query->get();
    }
    public function headings(): array
    {
        return [
            'ID',
            'Date',
            'First Name',
            'Last Name',
            'Email',
            'Company',
            'Country',
            'Contact',
            'Contact Email',
            'Page URL'
            //'Message'
        ];
    }
    public function map($visitorContact): array
    {
        return [
            $visitorContact->id,
            $visitorContact->created_at->toDateTimeString(),
            $visitorContact->first_name,
            $visitorContact->last_name,
            $visitorContact->email,
            $visitorContact->organisation,
            $visitorContact->country,
            $visitorContact->contact,
            $visitorContact->contact_email,
            $visitorContact->page
            //$visitorContact->message
        ];
    }
}
