<?php

namespace App\Http\Controllers;

use App\Models\Machine;
use Illuminate\Http\Request;

class MachineController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     */
    public function get_all_data(Request $request)
    {
        $expectedUser = env('API_AUTH_USER');
        $expectedPw   = env('API_AUTH_PW');
        $header_auth  = $request->header('Authorization');
        $expectedToken = $expectedUser . ':' . $expectedPw;

        if ("Bearer " . $expectedToken != $header_auth)
        {
            return response()->json([
                'status_code' => 'ERROR',
                'status_description' => 'Invalid authorization token!'
            ], 403);
        }

          $machines = Machine::with('plant')->with('workGroupMaster')->orderBy('plant_id')->get();
          $machinesData = $machines->map(function($machine) {
              return [
                  'plant_code'          => $machine->plant ? (String)$machine->plant->code : "",
                  'group_work_center'   => $machine->workGroupMaster ? (String)$machine->workGroupMaster->name : "",
                  'work_center'         => $machine->work_center ?? "",
              ];
          });

          return response()->json([
              'machines' => $machinesData
          ]);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, string $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id)
    {
        //
    }
}
