<?php

namespace App;

class Shop extends BaseModel
{
    protected $table = 'shops';

    protected $appends = ['fortuneCount'];

    protected $fillable = ['id', 'area_id', 'name', 'slug', 'description', 'logo', 'fee', 'average',
                           'benefits', 'enrolled', 'operation', 'reviews', 'evaluation', 'station', 'address', 'points', 'interview_url',
                           'order', 'show_search', 'user_id', 'is_activated', 'is_deleted', 'created_at', 'updated_at'];

    public function information() {
        return $this->hasMany(ShopMeta::class, 'shop_id', 'id')->select('id', 'shop_id', 'title', 'content')->orderBy('order');
    }

    public function method() {
        return $this->hasMany(ShopInfo::class, 'shop_id', 'id')->select('id', 'shop_id', 'info_id');
    }

 	public function area() {
 		return $this->belongsTo(Area::class, 'area_id', 'id');
 	}

 	public function fortune()
    {
        return $this->hasMany(Fortuneteller::class, 'shop_id', 'id')->where('is_deleted', false)->where('is_activated', true);
    }

    public function getFortuneCountAttribute() {
        return $this->fortune()->count();
    }

    public function review() {
        return $this->hasMany(ShopReview::class, 'shop_id', 'id');
    }

    public function slider() {
        return $this->hasMany(ShopSlider::class, 'shop_id', 'id');
    }

    public function tag() {
        return $this->hasMany(KeywordDetail::class, 'ref_id', 'id')->with('keyword')->select('id', 'keyword_id', 'ref_id')->where('type', 'shop');
    }

    public function seo() {
        return $this->belongsTo(Seo::class, 'id', 'post_id')->where('type', 'shop');
    }
}
