<?php

namespace App\Validations;

use App\Utils\DateUtils;

class AgendaEspecialidadeDisponibilidadeValidator {

	static public function register(array $request): array {

		$resp = array ();
		if (!intval( $request ['unidade'] )) {
			$resp = [ 
				'unidade' => 'O campo unidade é obrigatório'
			];
		}
		if (!intval( $request ['especialidade'] )) {
			$resp = [ 
				'especialidade' => 'O campo especialidade é obrigatório'
			];
		}
		if (strlen( trim( $request ['data_inicial'] ) ) != 10) {
			$resp = [ 
				'data_inicial' => 'O campo Data inicial é obrigatório'
			];
		}
		if (strlen( trim( $request ['data_final'] ) ) != 10) {
			$resp = [ 
				'data_final' => 'O campo Data final é obrigatório'
			];
		}
		if (strlen( trim( $request ['hora_inicial'] ) ) != 5) {
			$resp = [ 
				'hora_inicial' => 'O campo Hora inicial é obrigatório'
			];
		}
		if (strlen( trim( $request ['hora_final'] ) ) != 5) {
			$resp = [ 
				'hora_inicial' => 'O campo Hora Final é obrigatório'
			];
		}

		if (!DateUtils::isDateValid( trim( $request ['data_inicial'] ) )) {
			$resp = [ 
				'data_inicial' => 'Data inicial invalida'
			];
		}
		if (!DateUtils::isDateValid( trim( $request ['data_final'] ) )) {
			$resp = [ 
				'data_inicial' => 'Data final invalida'
			];
		}
		if (!DateUtils::isHoraValid( trim( $request ['hora_inicial'] ) )) {
			$resp = [ 
				'hora_inicial' => 'Hora inicial invalida'
			];
		}
		if (!DateUtils::isHoraValid( trim( $request ['hora_final'] ) )) {
			$resp = [ 
				'hora_inicial' => 'Hora Final invalida'
			];
		}

		return $resp;

	}

	static function searchDisponibilidadePeriodo(int $dataInicial, int $dataFinal): array {

		$dt_ini = DateUtils::requestInt_to_date( $dataInicial );
		$dt_fim = DateUtils::requestInt_to_date( $dataFinal );
		$resp = array ();
		if (($dt_ini == 'falso') || (!DateUtils::isDateValid( $dt_ini ))) {
			$resp = [ 
				'data_inicial' => 'Data Inicial com valor inválido'
			];
		}

		if (($dt_fim == 'falso') || (!DateUtils::isDateValid( $dt_fim ))) {
			$resp = [ 
				'data_inicial' => 'Data Final com valor inválido'
			];
		}

		return $resp;

	}

	static public function update(array $request): array {

		$resp = array ();
		if (!intval( $request ['id_agenda'] )) {
			$resp = [ 
				'id_agenda' => 'O campo id_agenda é obrigatório'
			];
		}
		if ((!intval( $request ['ativo'] )) && (trim( strval( $request ['ativo'] ) ) != "0")) {
			$resp = [ 
				'ativo' => 'O campo ativo é obrigatório'
			];
		}

		return $resp;

	}

}

