<?php
class RoomManager{
	public static $rooms;

	static function getDefaultRoomId() {
		$defaultRoom = Db::loadOne("SELECT `room_id` FROM `rooms` WHERE `default` = 1");
		return $defaultRoom['room_id'];
	}

	static function getAllRooms () {
		//TODO: ignore Widgets withoud data
		$allRoom = Db::loadAll ("SELECT rooms.*, COUNT(devices.device_id) as device_count FROM rooms LEFT JOIN devices ON (devices.room_id=rooms.room_id) GROUP BY rooms.room_id");
		return $allRoom;
	}

	static function getRoomsDefault () {
		//TODO: ignore Widgets withoud data
		$allRoom = Db::loadAll ("SELECT rooms.room_id, rooms.name, COUNT(devices.device_id) as device_count FROM rooms LEFT JOIN devices ON (devices.room_id=rooms.room_id) GROUP BY rooms.room_id;");
		return $allRoom;
	}

	public static function getRoomName ($room_id) {
		//TODO: ignore Widgets withoud data
		$allRoom = Db::loadAlone ("SELECT name FROM rooms WHERE room_id=?", array ($room_id));
		return $allRoom;
	}

	public static function create ($name) {
		$room = array (
			'name' => $name,
		);
		try {
			Db::add ('rooms', $room);
		} catch(PDOException $error) {
			echo $error->getMessage();
			die();
		}
	}

	public static function edit ($roomId, $values = []) {
		try {
			Db::edit ('rooms', $values, 'WHERE room_id = ?', array($roomId));
		} catch(PDOException $error) {
			echo $error->getMessage();
			die();
		}
	}

	public static function delete ($roomId) {
		Db::command ('DELETE FROM rooms WHERE room_id=?', array ($roomId));
	}
}
?>