<?php

namespace App\Models;

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

class Machine extends Model
{
    use SoftDeletes;

    protected $fillable = [
        'plant_id',
        'line_id',
        'work_group_master_id',
        'name',
        'work_center',
    ];

    public function plant(): BelongsTo
    {
        return $this->belongsTo(Plant::class);
    }

    public function line(): BelongsTo
    {
        return $this->belongsTo(Line::class);
    }

    public function workGroupMaster(): BelongsTo
    {
        return $this->belongsTo(WorkGroupMaster::class);
    }

    public function productCharacteristicsMasters()
    {
        return $this->hasMany(ProductCharacteristicsMaster::class);
    }

    public function characteristicValues()
    {
        return $this->hasMany(CharacteristicValue::class);
    }

    public function ClassCharacteristics()
    {
        return $this->hasMany(ClassCharacteristic::class, 'machine_id', 'id');
    }

    public function requestCharacteristics()
    {
        return $this->hasMany(RequestCharacteristic::class, 'machine_id', 'id');
    }

    public function characteristicApproverMaster()
    {
        return $this->hasMany(CharacteristicApproverMaster::class, 'machine_id', 'id');
    }

    public function productionCharacteristics()
    {
        return $this->hasMany(ProductionCharacteristic::class, 'machine_id', 'id');
    }

    public function testingPanelReadings()
    {
        return $this->hasMany(TestingPanelReading::class);
    }

    public function tempClassCharacteristics()
    {
        return $this->hasMany(TempClassCharacteristic::class, 'plant_id', 'id');
    }

    public function equipmentMasters()
    {
        return $this->hasMany(EquipmentMaster::class, 'machine_id', 'id');
    }
}
