<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Order extends BaseModel
{
    protected $table = 'orders';

    protected $fillable = ['id', 'code', 'type', 'user_id',
						   'first_name', 'last_name', 'furigana_first_name', 'furigana_last_name', 'post_code',
						   'address1', 'address2', 'address3', 'phone_number', 'email',
						   'total_price', 'discount_point', 'discount_point_rate', 'discount_point_amount',
                           'estimated_delivery_date', 'payment_method', 'payment_status', 'note', 'status',
                           'is_activated', 'is_deleted', 'created_at', 'updated_at'];

    public function payment() {
        return $this->hasMany(Payment::class, 'order_id', 'id');
    }

    public function delivery() {
        return $this->hasMany(DeliveryAddress::class, 'order_id', 'id');
    }

    public function order_detail() {
        return $this->hasMany(OrderDetail::class, 'order_id', 'id')->with('product_detail');
    }

    public function user() {
        return $this->belongsTo(User::class, 'user_id', 'id')->select('id', 'username', 'name', 'first_name', 'last_name',
            'full_name', 'furigana_name', 'furigana_first_name', 'furigana_last_name',
            'email', 'phone_number', 'phone_number2', 'fax', 'company', 'post_code', 'city', 'district', 'address', 'address2');
    }
}
