<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Siswa;

class SiswaController extends Controller
{

    // GET Semua Data Siswa
    public function index()
    {
        $siswas = Siswa::orderBy('nama')->get();

        return response()->json([
            'status' => true,
            'message' => 'Data siswa berhasil diambil',
            'data' => $siswas
        ]);
    }


    // POST Tambah Data Siswa
    public function store(Request $request)
    {

        $request->validate([
            'nisn' => 'required|unique:siswas,nisn',
            'nama' => 'required',
            'kelas' => 'required',
            'jenis_kelamin' => 'required',
            'alamat' => 'required'
        ]);


        $siswa = Siswa::create([
            'nisn'=>$request->nisn,
            'nama'=>$request->nama,
            'kelas'=>$request->kelas,
            'jenis_kelamin'=>$request->jenis_kelamin,
            'alamat'=>$request->alamat
        ]);


        return response()->json([
            'status'=>true,
            'message'=>'Siswa berhasil ditambahkan',
            'data'=>$siswa
        ],201);
    }



    // GET Detail Siswa
    public function show($id)
    {

        $siswa = Siswa::find($id);


        if(!$siswa){

            return response()->json([
                'status'=>false,
                'message'=>'Data siswa tidak ditemukan'
            ],404);

        }


        return response()->json([
            'status'=>true,
            'data'=>$siswa
        ]);

    }



    // UPDATE Data Siswa
    public function update(Request $request,$id)
    {

        $siswa = Siswa::find($id);


        if(!$siswa){

            return response()->json([
                'status'=>false,
                'message'=>'Data tidak ditemukan'
            ],404);

        }



        $siswa->update([
            'nisn'=>$request->nisn,
            'nama'=>$request->nama,
            'kelas'=>$request->kelas,
            'jenis_kelamin'=>$request->jenis_kelamin,
            'alamat'=>$request->alamat
        ]);



        return response()->json([
            'status'=>true,
            'message'=>'Data berhasil diperbarui',
            'data'=>$siswa
        ]);

    }



    // DELETE Data Siswa
    public function destroy($id)
    {

        $siswa = Siswa::find($id);


        if(!$siswa){

            return response()->json([
                'status'=>false,
                'message'=>'Data tidak ditemukan'
            ],404);

        }


        $siswa->delete();


        return response()->json([
            'status'=>true,
            'message'=>'Data siswa berhasil dihapus'
        ]);

    }

}