<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use App\Models\DataPasien;

class DataPasienController extends Controller
{
  public function index()
  {
    $dataPasien = DataPasien::all()->sortBy('dp_no_rm');

    return view('data_pasien.data_pasien', compact('dataPasien'));
  }

  public function data()
  {
    $dataPasien = DataPasien::all()->sortBy('dp_no_rm')->toJson();

    return $dataPasien;
  }

  public function show($dp_id)
  {
    $dataPasien = DataPasien::find($dp_id);

    $dataRekamMedis = DB::table('rekam_medis')
      ->join('data_pasien', 'rekam_medis.dp_id', '=', 'data_pasien.dp_id')
      ->join('pemeriksaan', 'rekam_medis.p_id', '=', 'pemeriksaan.p_id')
      ->where('rekam_medis.dp_id', '=', $dataPasien->dp_id)
      ->where('pemeriksaan.p_status', '=', "Ditangani")
      ->get();


    return view('data_pasien.data_pasien_detail', compact('dataPasien', 'dataRekamMedis'));
  }

  public function edit($dp_id)
  {
    $dataPasien = DataPasien::find($dp_id);

    return view('data_pasien.data_pasien_edit', compact('dataPasien'));
  }

  public function update(Request $request, DataPasien $dataPasien)
  {
    $data = $request->only(
      'dp_no_rm',
      'dp_no_ktp',
      'dp_no_bpjs',
      'dp_nama',
      'dp_jenis_kelamin',
      'dp_no_hp',
      'dp_alamat',
    );

    $data['dp_tgl_lahir'] = Carbon::parse($request->dp_tgl_lahir)->startOfDay();

    $dataPasien->update($data);

    return redirect('data_pasien')->with(['notif' => 'updated']);
  }
}
