<?php

namespace App\Models;

use App\Models\User;
use App\Models\iChambaParameter;
use App\Models\Banks;
use App\Models\Categories;
use App\Models\Postulations;
use App\Models\FinishedContracts;
use App\Models\CurrentContracts;
use App\Models\Payments;
use App\Models\Technician;
use TarfinLabs\LaravelSpatial\Casts\LocationCast;
use TarfinLabs\LaravelSpatial\Traits\HasSpatial;
use Illuminate\Database\Eloquent\Model;

class Suppliers extends Model
{
    use HasSpatial;

    protected $fillable = [
        'company_name',
        'membership',
        'cover_photo',
        'tags',
        'RFC',
        'CURP',
        'clabe',
        'bank_id',
        'IVA_id',
        'ISR_id',
        'finished_jobs',
        'total_score',
        'address',
    ];

    protected $casts = [
        'location' => LocationCast::class
    ];

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    public function banks()
    {
        return $this->belongsTo('App\Models\Banks', 'bank_id');
    }

    public function categories()
    {
        return $this->belongsToMany(Categories::class);
    }

    public function postulations()
    {
        return $this->belongsToMany(Postulations::class, 'postulations_suppliers', 'suppliers_id', 'postulations_id')
                    ->withPivot('date_1', 'date_2', 'amount')
                    ->withTimestamps();
    }

    public function payments()
    {
        return $this->hasMany(Payments::class);
    }

    public function currentcontracts()
    {
        return $this->hasMany(CurrentContracts::class);
    }

    public function finishedcontracts()
    {
        return $this->hasMany(FinishedContracts::class);
    }

    public function technicians()
    {
        return $this->hasMany(Technician::class, 'supplier_id');
    }

    public function ichambaparameters()
    {
        return $this->belongsTo(iChambaParameter::class);
    }
}
