<?php

namespace App\Models;

use App\Services\Search\AuthorConfigurator;
use Illuminate\Database\Eloquent\Model;
use ScoutElastic\Searchable;

class Author extends Model {

    use Searchable;

    protected $indexConfigurator = AuthorConfigurator::class;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name',
    ];

    public function books() {
        return $this->belongsToMany(Book::class);
    }

    protected $mapping = [
        'properties' => [
            'name' => [
                'type' => 'text',
                // Also you can configure multi-fields, more details you can find here https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-fields.html
                'fields' => [
                    'raw' => [
                        'type' => 'keyword',
                    ]
                ]
            ],
        ]
    ];
}