<?php

namespace App\Controllers;

use App\Controllers\BaseController;
use App\Models\EventoModel;

use CodeIgniter\I18n\Time;


class Calendario extends BaseController
{
    public function index()
    {
        return view('cliente/calendario');
    }

    public function buscarEventos()
    {
        $eventoModel = new EventoModel();
        $eventos = $eventoModel->findAll();
        return json_encode($eventos);
    }

    public function criarEvento()
    {
        $dados = $this->request->getPost();
        $eventoModel = new EventoModel();

        $start = date('Y-m-d H:i:s', strtotime($dados['start']));
        $end = date('Y-m-d H:i:s', strtotime($dados['end']));
        
        $novoEvento = [
            'title' => $dados['title'],
            'start_date' => $start,
            'end_date' => $end,
            'allDay' => $dados['allDay'] === 'true' ? 1 : 0
        ];
        


        print_r($novoEvento);
        exit;
        

        if ($eventoModel->insert($novoEvento)) {
            return json_encode(['status' => 'success', 'message' => 'Evento criado com sucesso']);
        } else {
            return json_encode(['status' => 'error', 'message' => 'Falha ao criar o evento']);
        }
    }

    public function atualizarEvento()
    {
        $dados = $this->request->getPost();
        $idEvento = $dados['id'];
        $eventoModel = new EventoModel();

        $evento = $eventoModel->find($idEvento);

        if ($evento) {
            unset($dados['id']);
            $evento->fill([
                'title' => $dados['title'],
                'start_date' => date('Y-m-d H:i:s', strtotime($dados['start'])),
                'end_date' => date('Y-m-d H:i:s', strtotime($dados['end'])),
                'allDay' => $dados['allDay'] === 'true' ? 1 : 0
            ]);

            if ($eventoModel->update($idEvento, $evento)) {
                return json_encode(['status' => 'success', 'message' => 'Evento atualizado com sucesso']);
            }
        }

        return json_encode(['status' => 'error', 'message' => 'Falha ao atualizar o evento']);
    }

    public function excluirEvento()
    {
        $eventoModel = new EventoModel();
        $idEvento = $this->request->getPost('id');
        $evento = $eventoModel->find($idEvento);

        if ($evento) {
            if ($eventoModel->delete($idEvento)) {
                return json_encode(['status' => 'success', 'message' => 'Evento excluído com sucesso']);
            }
        }

        return json_encode(['status' => 'error', 'message' => 'Falha ao excluir o evento']);
    }
}
