<?php
/**
 * 
 * 
 * @author Carsten Brandt <mail@cebe.cc>
 */

namespace yii\redis;


use yii\base\InvalidConfigException;
use yii\db\TableSchema;

/**
 * Class RecordSchema defines the data schema for a redis active record
 *
 * As there is no schema in a redis DB this class is used to define one.
 *
 * @package yii\db\redis
 */
class RecordSchema extends TableSchema
{
	/**
	 * @var string[] column names.
	 */
	public $columns = array();

	/**
	 * @return string the column type
	 */
	public function getColumn($name)
	{
		parent::getColumn($name);
	}

	public function init()
	{
		if (empty($this->name)) {
			throw new InvalidConfigException('name of RecordSchema must not be empty.');
		}
		if (empty($this->primaryKey)) {
			throw new InvalidConfigException('primaryKey of RecordSchema must not be empty.');
		}
		if (!is_array($this->primaryKey)) {
			$this->primaryKey = array($this->primaryKey);
		}
		foreach($this->primaryKey as $pk) {
			if (!isset($this->columns[$pk])) {
				throw new InvalidConfigException('primaryKey '.$pk.' is not a colum of RecordSchema.');
			}
		}
	}
}