<?php

namespace App\Http\Controllers;

use App\Models\Ships;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
use Illuminate\Http\Request;

class ShipsController extends Controller
{
    public function index(){
        $ships = \App\Models\Ships::sortable()->paginate(10);
        return view('ships.index', compact('ships'));
    }

    public function add(Request $request){

        if($request->input('addShip')) {
            try {
                $ship = new Ships;
                $ship->id = Str::uuid()->toString();
                $ship->shipId = strtoupper(request('shipId'));
                $ship->shipName = request('shipName');
                $ship->shipOwner = request('shipOwner');
                $ship->created_at = now();
                $ship->save();
            }catch(\Exception $e){
                session()->flash('error', 'Failed to create record.');
                return redirect('/');

            }
            session()->flash('success', 'Record created successfully.');
            return redirect('/');
        }

        if($request->input('deleteShip')) {
            try {
                DB::table('ships')->where('id', $request->get('deleteShip'))->delete();
            }catch(\Exception $e){
                session()->flash('error', 'Failed to delete record.');
                return redirect('/');
            }

            session()->flash('success', 'Record deleted successfully.');
            return redirect('/');
        }

        if($request->input('editShip')) {
            try {
                DB::table('ships')->where('id', $request->get('editShip'))->update(array(
                    'shipId' => strtoupper(request('shipId')),
                    'shipName' => request('shipName'),
                    'shipOwner' => request('shipOwner')
                ));
            }catch(\Exception $e){
                session()->flash('error', 'Failed to update record. Is it possible that the ship ID is not unique?');
                return redirect('/');
            }

            session()->flash('success', 'Record edited successfully.');
            return redirect('/');
        }

    }
}