<?php

class Course extends PhpObject {
	
	const WS_TABLE = 'workshops';
	const COURSE_TABLE = 'courses';
	
	/**
	 * DB
	 * @var Db
	 */
	private $oDb;
	
	private $iCourseId;
	
	public function __construct(Db &$oDb, $iCourseId=0)
	{
		parent::__construct(__CLASS__, Settings::DEBUG);
		$this->oDb = &$oDb;
		$this->setCourseId($iCourseId);
	}
	
	public function getCourseId() {
		return $this->iCourseId;
	}
	
	public function setCourseId($iCourseId) {
		$this->iCourseId = $iCourseId;
	}
	
	public function getWorkshops() {
		$asCourses = $this->oDb->selectRows(array(
			'select'=> array(Db::getId(self::WS_TABLE), 'dates', Db::getId(self::COURSE_TABLE), 'description', 'timeslot'), 
			'from'	=> self::COURSE_TABLE, 
			'join'	=> array(self::WS_TABLE => Db::getId(self::WS_TABLE)))
		);
		
		$asWorkshops = array();
		foreach($asCourses as $asCourse) {
			$asWorkshops[$asCourse[Db::getId(self::WS_TABLE)]]['dates'] = $asCourse['dates'];
			$asWorkshops[$asCourse[Db::getId(self::WS_TABLE)]]['courses'][$asCourse[Db::getId(self::COURSE_TABLE)]] = array('description'=>$asCourse['description'], 'timeslot'=>$asCourse['timeslot']);
		}
		
		return $asWorkshops;
	}
	
	public function getCourses($iWorkshopId=0) {
		$asInfo = array('select'=> array(Db::getId(self::COURSE_TABLE), Db::getId(self::WS_TABLE), 'description', 'timeslot'), 'from' => self::COURSE_TABLE);
		if($iWorkshopId > 0) $asInfo['constraint'] = array(Db::getId(self::WS_TABLE) => $iWorkshopId);
		
		return $this->oDb->selectRows($asInfo, Db::getId(self::COURSE_TABLE));
	}
}