<?php

$hook = @file_get_contents(__DIR__ . '/hook.cfg');

if (!$hook) {
	fprintf(STDERR, "hook.cfg nenalezen.\n");
	exit(1);
}

$hook = trim($hook);

$d = date('N') - 1;

if ($d > 4) {
	fprintf(STDERR, "Dneska se nepapá!\n");
	exit(2);
}

define('DAY_NAME', ['pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek'][$d]);

require(__DIR__ . '/vendor/autoload.php');

$message = new Adawolfa\DiscordHooks\Message;
$message->username = 'Oběd';

foreach (glob(__DIR__ . '/restaurace/*.php') as $file) {

	$restaurace = require_once($file);
	assert($restaurace instanceof Restaurace);

	$menu = $restaurace->menu();

	if (empty($menu)) {
		continue;
	}

	$message->embeds[] = $embed = new Adawolfa\DiscordHooks\Embed;
	$embed->title = $restaurace->name();
	$embed->url = $restaurace->link();
	$embed->color = 16580705;

	foreach ($menu as [$name, $value]) {
		$embed->fields[] = new Adawolfa\DiscordHooks\Embed\Field($name, $value);
	}

}

if (empty($message->embeds)) {
	fprintf(STDERR, "Nebylo nalezeno nic k jídlu.\n");
	exit(3);
}

$webHook = new Adawolfa\DiscordHooks\WebHook($hook);
$webHook->execute($message);

function nbsp(string $text): string
{
	return str_replace(chr(194) . chr(160), ' ', $text);
}

interface Restaurace
{

	public function name(): string;

	public function link(): string;

	public function menu(): ?array;

}