<?php

namespace App\Models;

class PropertyRoomRateChannelMapping extends BaseModel
{
    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'property_room_rate_channel_mapping';
    protected $appends = [];

    const CREATED_AT = 'created_at';
    const UPDATED_AT = 'updated_at';

    protected $dateFormat = 'U';
    protected $guarded = [];

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = [];

    /**
     * @return mixed
     */


    public function propertyChannel()
    {
        return $this->hasOne('App\Models\PropertyChannel','id', 'channel_id')->select(['id', 'parent_id', 'name', 'official_name', 'description', 'channel_category_id', 'country_code', 'currency_code', 'logo', 'address', 'zip_code', 'email', 'phone', 'phone2', 'fax', 'score', 'status']);
    }

    public function propertyRoomRateMapping()
    {
        return $this->hasOne('App\Models\PropertyRoomRateMapping','id', 'room_rate_mapping_id')->select(['id', 'room_id', 'room_rate_id', 'rack_rate', 'included_occupancy','status']);
    }

    public function propertyRoomRateChannelCancellationPolicy()
    {
        return $this->hasMany('App\Models\PropertyChannelRoomRateCancellationPolicyMapping','room_rate_channel_mapping_id', 'id')->select(['id', 'property_id', 'room_rate_channel_mapping_id', 'cancellation_policy_id','status']);
    }

    public function propertyRoomRateChannelPricingAdultPolicy()
    {
        return $this->hasMany('App\Models\PropertyChannelRoomRatePricingPolicyAdultMapping','room_rate_channel_mapping_id', 'id')->select(['id', 'property_id', 'room_rate_channel_mapping_id', 'pricing_policy_adult_id']);
    }

    public function propertyRoomRateChannelPricingChildPolicy()
    {
        return $this->hasMany('App\Models\PropertyChannelRoomRatePricingPolicyChildMapping','room_rate_channel_mapping_id', 'id')->select(['id', 'property_id', 'room_rate_channel_mapping_id', 'pricing_policy_child_id']);
    }

    public function propertyRoomRateChannelPromotion()
    {
        return $this->hasMany('App\Models\PropertyPromotionMapping','room_rate_channel_mapping_id', 'id')->select(['id', 'property_id', 'room_rate_channel_mapping_id', 'property_promotion_id', 'status']);
    }

    public function propertyRoomRateQuickPricingMapping()
    {
        return $this->hasOne('App\Models\PropertyQuickPricingMapping','room_rate_channel_mapping_id','id');
    }

}
