<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

/**
 * Class Document
 *
 * @package App
 * @property string $name
 * @property string $description
 * @property string $icon
 * @property string $file
 * @property string $link
 * @property string $document_type
 * @property string $residental_complex
 * @property-write mixed $document_type_id
 * @property-write mixed $residental_complex_id
 * @method static bool|null forceDelete()
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Document newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Document newQuery()
 * @method static \Illuminate\Database\Query\Builder|\App\Document onlyTrashed()
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Document query()
 * @method static bool|null restore()
 * @method static \Illuminate\Database\Query\Builder|\App\Document withTrashed()
 * @method static \Illuminate\Database\Query\Builder|\App\Document withoutTrashed()
 * @mixin \Eloquent
 */
class Document extends Model
{
    use SoftDeletes;

    protected $fillable = [
        'name',
        'description',
        'icon',
        'file',
        'link',
        'document_type_id',
        'residental_complex_id'
    ];

    protected $hidden = [];

    /**
     * Set to null if empty
     * @param $input
     */
    public function setDocumentTypeIdAttribute($input)
    {
        $this->attributes['document_type_id'] = $input ? $input : null;
    }

    /**
     * Set to null if empty
     * @param $input
     */
    public function setResidentalComplexIdAttribute($input)
    {
        $this->attributes['residental_complex_id'] = $input ? $input : null;
    }

    public function document_type()
    {
        return $this->belongsTo(DocumentType::class, 'document_type_id')->withTrashed();
    }

    public function residental_complex()
    {
        return $this->belongsTo(ResidentialComplex::class, 'residental_complex_id')->withTrashed();
    }
}
