From 65d3552fc71c2d2608b995881a1c019c65e09a5e Mon Sep 17 00:00:00 2001
From: jo <ljonas@riseup.net>
Date: Tue, 6 Sep 2022 11:58:26 +0200
Subject: [PATCH] feat: remove cc_stream_setting models

- We don't drop the cc_stream_setting table from the database to prevent data loss. This will be handled in a future release.
---
 api/libretime_api/core/models/__init__.py     |   2 +-
 api/libretime_api/core/models/preference.py   |  42 -
 .../core/tests/models/test_preference.py      |  28 -
 .../legacy/migrations/sql/data.sql            |  72 --
 .../legacy/migrations/sql/schema.sql          |  14 -
 .../configs/classmap-airtime-conf.php         |   7 -
 .../models/airtime/CcStreamSetting.php        |  12 -
 .../models/airtime/CcStreamSettingPeer.php    |  12 -
 .../models/airtime/CcStreamSettingQuery.php   |  12 -
 .../airtime/map/CcStreamSettingTableMap.php   |  54 --
 .../models/airtime/om/BaseCcStreamSetting.php | 870 ------------------
 .../airtime/om/BaseCcStreamSettingPeer.php    | 761 ---------------
 .../airtime/om/BaseCcStreamSettingQuery.php   | 329 -------
 legacy/build/schema.xml                       |   5 -
 14 files changed, 1 insertion(+), 2219 deletions(-)
 delete mode 100644 legacy/application/models/airtime/CcStreamSetting.php
 delete mode 100644 legacy/application/models/airtime/CcStreamSettingPeer.php
 delete mode 100644 legacy/application/models/airtime/CcStreamSettingQuery.php
 delete mode 100644 legacy/application/models/airtime/map/CcStreamSettingTableMap.php
 delete mode 100644 legacy/application/models/airtime/om/BaseCcStreamSetting.php
 delete mode 100644 legacy/application/models/airtime/om/BaseCcStreamSettingPeer.php
 delete mode 100644 legacy/application/models/airtime/om/BaseCcStreamSettingQuery.php

diff --git a/api/libretime_api/core/models/__init__.py b/api/libretime_api/core/models/__init__.py
index de40b8b83..7a2f513a2 100644
--- a/api/libretime_api/core/models/__init__.py
+++ b/api/libretime_api/core/models/__init__.py
@@ -1,5 +1,5 @@
 from .auth import LoginAttempt, UserToken
-from .preference import Preference, StreamSetting
+from .preference import Preference
 from .role import Role
 from .service import ServiceRegister
 from .user import User, UserManager
diff --git a/api/libretime_api/core/models/preference.py b/api/libretime_api/core/models/preference.py
index a2049bb87..33bcf11aa 100644
--- a/api/libretime_api/core/models/preference.py
+++ b/api/libretime_api/core/models/preference.py
@@ -1,10 +1,5 @@
-import logging
-from typing import Optional, Union
-
 from django.db import models
 
-logger = logging.getLogger(__name__)
-
 
 class Preference(models.Model):
     user = models.ForeignKey(
@@ -31,40 +26,3 @@ class Preference(models.Model):
         managed = False
         db_table = "cc_pref"
         unique_together = (("user", "key"),)
-
-
-class StreamSetting(models.Model):
-    key = models.CharField(
-        primary_key=True,
-        max_length=64,
-        db_column="keyname",
-    )
-    raw_value = models.CharField(
-        max_length=255,
-        blank=True,
-        null=True,
-        db_column="value",
-    )
-    type = models.CharField(
-        max_length=16,
-    )
-
-    @property
-    def value(self) -> Optional[Union[bool, int, str]]:
-        # Ignore if value is an empty string
-        if not self.raw_value:
-            return None
-
-        if self.type == "boolean":
-            return self.raw_value.lower() == "true"
-        if self.type == "integer":
-            return int(self.raw_value)
-        if self.type == "string":
-            return self.raw_value
-
-        logger.warning(f"StreamSetting {self.key} has invalid type {self.type}")
-        return self.raw_value
-
-    class Meta:
-        managed = False
-        db_table = "cc_stream_setting"
diff --git a/api/libretime_api/core/tests/models/test_preference.py b/api/libretime_api/core/tests/models/test_preference.py
index e54f5b661..e69de29bb 100644
--- a/api/libretime_api/core/tests/models/test_preference.py
+++ b/api/libretime_api/core/tests/models/test_preference.py
@@ -1,28 +0,0 @@
-import pytest
-
-from ...models import StreamSetting
-
-
-# pylint: disable=invalid-name,unused-argument
-@pytest.mark.parametrize(
-    "type_name, value",
-    [
-        ("boolean", True),
-        ("integer", 1),
-        ("string", "hello"),
-    ],
-)
-def test_stream_setting_value(db, type_name, value):
-    setting = StreamSetting.objects.create(
-        key=f"some_{type_name}",
-        type=type_name,
-        raw_value=str(value),
-    )
-    assert isinstance(setting.value, type(value))
-
-    empty_setting = StreamSetting.objects.create(
-        key=f"some_empty_{type_name}",
-        type=type_name,
-        raw_value="",
-    )
-    assert empty_setting.value is None
diff --git a/api/libretime_api/legacy/migrations/sql/data.sql b/api/libretime_api/legacy/migrations/sql/data.sql
index bda3be2af..6e7e7f2aa 100644
--- a/api/libretime_api/legacy/migrations/sql/data.sql
+++ b/api/libretime_api/legacy/migrations/sql/data.sql
@@ -23,75 +23,3 @@ INSERT INTO cc_pref ("keystr", "valstr") VALUES ('whats_new_dialog_viewed', 1);
 
 INSERT INTO cc_subjs ("login", "type", "pass") VALUES ('admin', 'A', md5('admin'));
 INSERT INTO cc_pref ("subjid", "keystr", "valstr") VALUES (1, 'user_locale', 'en_US');
-
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('icecast_vorbis_metadata', 'false', 'boolean');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('output_sound_device_type', 'ALSA', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('output_sound_device', 'false', 'boolean');
-
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_enable', 'true', 'boolean');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_output', 'icecast', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_host', '127.0.0.1', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_port', '8000', 'integer');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_mount', 'main', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_type', 'ogg', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_bitrate', '128', 'integer');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_channels', 'stereo', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_admin_pass', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_admin_user', 'admin', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_user', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_pass', 'hackme', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_name', 'LibreTime!', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_description', 'LibreTime Radio! Stream #1', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_genre', 'genre', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_url', 'https://libretime.org', 'string');
-
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_enable', 'false', 'boolean');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_output', 'icecast', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_host', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_port', '', 'integer');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_mount', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_type', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_bitrate', '', 'integer');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_channels', 'stereo', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_admin_pass', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_admin_user', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_user', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_pass', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_name', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_description', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_genre', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_url', '', 'string');
-
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_enable', 'false', 'boolean');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_output', 'icecast', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_host', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_port', '', 'integer');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_mount', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_type', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_bitrate', '', 'integer');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_channels', 'stereo', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_admin_pass', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_admin_user', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_user', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_pass', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_name', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_description', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_genre', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_url', '', 'string');
-
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_enable', 'false', 'boolean');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_output', 'icecast', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_host', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_port', '', 'integer');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_mount', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_type', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_bitrate', '', 'integer');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_channels', 'stereo', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_admin_pass', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_admin_user', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_user', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_pass', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_name', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_description', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_genre', '', 'string');
-INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_url', '', 'string');
diff --git a/api/libretime_api/legacy/migrations/sql/schema.sql b/api/libretime_api/legacy/migrations/sql/schema.sql
index 3013bdabc..7964b8ffb 100644
--- a/api/libretime_api/legacy/migrations/sql/schema.sql
+++ b/api/libretime_api/legacy/migrations/sql/schema.sql
@@ -394,20 +394,6 @@ CREATE TABLE "cc_subjs_token"
     CONSTRAINT "cc_subjs_token_idx" UNIQUE ("token")
 );
 
------------------------------------------------------------------------
--- cc_stream_setting
------------------------------------------------------------------------
-
-DROP TABLE IF EXISTS "cc_stream_setting" CASCADE;
-
-CREATE TABLE "cc_stream_setting"
-(
-    "keyname" VARCHAR(64) NOT NULL,
-    "value" VARCHAR(255),
-    "type" VARCHAR(16) NOT NULL,
-    PRIMARY KEY ("keyname")
-);
-
 -----------------------------------------------------------------------
 -- cc_login_attempts
 -----------------------------------------------------------------------
diff --git a/legacy/application/configs/classmap-airtime-conf.php b/legacy/application/configs/classmap-airtime-conf.php
index 8f88435c8..fb0013c29 100644
--- a/legacy/application/configs/classmap-airtime-conf.php
+++ b/legacy/application/configs/classmap-airtime-conf.php
@@ -68,9 +68,6 @@ return [
     'BaseCcShowRebroadcast' => 'airtime/om/BaseCcShowRebroadcast.php',
     'BaseCcShowRebroadcastPeer' => 'airtime/om/BaseCcShowRebroadcastPeer.php',
     'BaseCcShowRebroadcastQuery' => 'airtime/om/BaseCcShowRebroadcastQuery.php',
-    'BaseCcStreamSetting' => 'airtime/om/BaseCcStreamSetting.php',
-    'BaseCcStreamSettingPeer' => 'airtime/om/BaseCcStreamSettingPeer.php',
-    'BaseCcStreamSettingQuery' => 'airtime/om/BaseCcStreamSettingQuery.php',
     'BaseCcSubjs' => 'airtime/om/BaseCcSubjs.php',
     'BaseCcSubjsPeer' => 'airtime/om/BaseCcSubjsPeer.php',
     'BaseCcSubjsQuery' => 'airtime/om/BaseCcSubjsQuery.php',
@@ -195,10 +192,6 @@ return [
     'CcShowRebroadcastQuery' => 'airtime/CcShowRebroadcastQuery.php',
     'CcShowRebroadcastTableMap' => 'airtime/map/CcShowRebroadcastTableMap.php',
     'CcShowTableMap' => 'airtime/map/CcShowTableMap.php',
-    'CcStreamSetting' => 'airtime/CcStreamSetting.php',
-    'CcStreamSettingPeer' => 'airtime/CcStreamSettingPeer.php',
-    'CcStreamSettingQuery' => 'airtime/CcStreamSettingQuery.php',
-    'CcStreamSettingTableMap' => 'airtime/map/CcStreamSettingTableMap.php',
     'CcSubjs' => 'airtime/CcSubjs.php',
     'CcSubjsPeer' => 'airtime/CcSubjsPeer.php',
     'CcSubjsQuery' => 'airtime/CcSubjsQuery.php',
diff --git a/legacy/application/models/airtime/CcStreamSetting.php b/legacy/application/models/airtime/CcStreamSetting.php
deleted file mode 100644
index 886ffcda5..000000000
--- a/legacy/application/models/airtime/CcStreamSetting.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * Skeleton subclass for representing a row from the 'cc_stream_setting' table.
- *
- * You should add additional methods to this class to meet the
- * application requirements.  This class will only be generated as
- * long as it does not already exist in the output directory.
- */
-class CcStreamSetting extends BaseCcStreamSetting
-{
-} // CcStreamSetting
diff --git a/legacy/application/models/airtime/CcStreamSettingPeer.php b/legacy/application/models/airtime/CcStreamSettingPeer.php
deleted file mode 100644
index 6a08edb64..000000000
--- a/legacy/application/models/airtime/CcStreamSettingPeer.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * Skeleton subclass for performing query and update operations on the 'cc_stream_setting' table.
- *
- * You should add additional methods to this class to meet the
- * application requirements.  This class will only be generated as
- * long as it does not already exist in the output directory.
- */
-class CcStreamSettingPeer extends BaseCcStreamSettingPeer
-{
-} // CcStreamSettingPeer
diff --git a/legacy/application/models/airtime/CcStreamSettingQuery.php b/legacy/application/models/airtime/CcStreamSettingQuery.php
deleted file mode 100644
index 59666c32a..000000000
--- a/legacy/application/models/airtime/CcStreamSettingQuery.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * Skeleton subclass for performing query and update operations on the 'cc_stream_setting' table.
- *
- * You should add additional methods to this class to meet the
- * application requirements.  This class will only be generated as
- * long as it does not already exist in the output directory.
- */
-class CcStreamSettingQuery extends BaseCcStreamSettingQuery
-{
-} // CcStreamSettingQuery
diff --git a/legacy/application/models/airtime/map/CcStreamSettingTableMap.php b/legacy/application/models/airtime/map/CcStreamSettingTableMap.php
deleted file mode 100644
index a0638089e..000000000
--- a/legacy/application/models/airtime/map/CcStreamSettingTableMap.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-
-
-/**
- * This class defines the structure of the 'cc_stream_setting' table.
- *
- *
- *
- * This map class is used by Propel to do runtime db structure discovery.
- * For example, the createSelectSql() method checks the type of a given column used in an
- * ORDER BY clause to know whether it needs to apply SQL to make the ORDER BY case-insensitive
- * (i.e. if it's a text column type).
- *
- * @package    propel.generator.airtime.map
- */
-class CcStreamSettingTableMap extends TableMap
-{
-
-    /**
-     * The (dot-path) name of this class
-     */
-    const CLASS_NAME = 'airtime.map.CcStreamSettingTableMap';
-
-    /**
-     * Initialize the table attributes, columns and validators
-     * Relations are not initialized by this method since they are lazy loaded
-     *
-     * @return void
-     * @throws PropelException
-     */
-    public function initialize()
-    {
-        // attributes
-        $this->setName('cc_stream_setting');
-        $this->setPhpName('CcStreamSetting');
-        $this->setClassname('CcStreamSetting');
-        $this->setPackage('airtime');
-        $this->setUseIdGenerator(false);
-        // columns
-        $this->addPrimaryKey('keyname', 'DbKeyName', 'VARCHAR', true, 64, null);
-        $this->addColumn('value', 'DbValue', 'VARCHAR', false, 255, null);
-        $this->addColumn('type', 'DbType', 'VARCHAR', true, 16, null);
-        // validators
-    } // initialize()
-
-    /**
-     * Build the RelationMap objects for this table relationships
-     */
-    public function buildRelations()
-    {
-    } // buildRelations()
-
-} // CcStreamSettingTableMap
diff --git a/legacy/application/models/airtime/om/BaseCcStreamSetting.php b/legacy/application/models/airtime/om/BaseCcStreamSetting.php
deleted file mode 100644
index c9aa761f7..000000000
--- a/legacy/application/models/airtime/om/BaseCcStreamSetting.php
+++ /dev/null
@@ -1,870 +0,0 @@
-<?php
-
-
-/**
- * Base class that represents a row from the 'cc_stream_setting' table.
- *
- *
- *
- * @package    propel.generator.airtime.om
- */
-abstract class BaseCcStreamSetting extends BaseObject implements Persistent
-{
-    /**
-     * Peer class name
-     */
-    const PEER = 'CcStreamSettingPeer';
-
-    /**
-     * The Peer class.
-     * Instance provides a convenient way of calling static methods on a class
-     * that calling code may not be able to identify.
-     * @var        CcStreamSettingPeer
-     */
-    protected static $peer;
-
-    /**
-     * The flag var to prevent infinite loop in deep copy
-     * @var       boolean
-     */
-    protected $startCopy = false;
-
-    /**
-     * The value for the keyname field.
-     * @var        string
-     */
-    protected $keyname;
-
-    /**
-     * The value for the value field.
-     * @var        string
-     */
-    protected $value;
-
-    /**
-     * The value for the type field.
-     * @var        string
-     */
-    protected $type;
-
-    /**
-     * Flag to prevent endless save loop, if this object is referenced
-     * by another object which falls in this transaction.
-     * @var        boolean
-     */
-    protected $alreadyInSave = false;
-
-    /**
-     * Flag to prevent endless validation loop, if this object is referenced
-     * by another object which falls in this transaction.
-     * @var        boolean
-     */
-    protected $alreadyInValidation = false;
-
-    /**
-     * Flag to prevent endless clearAllReferences($deep=true) loop, if this object is referenced
-     * @var        boolean
-     */
-    protected $alreadyInClearAllReferencesDeep = false;
-
-    /**
-     * Get the [keyname] column value.
-     *
-     * @return string
-     */
-    public function getDbKeyName()
-    {
-
-        return $this->keyname;
-    }
-
-    /**
-     * Get the [value] column value.
-     *
-     * @return string
-     */
-    public function getDbValue()
-    {
-
-        return $this->value;
-    }
-
-    /**
-     * Get the [type] column value.
-     *
-     * @return string
-     */
-    public function getDbType()
-    {
-
-        return $this->type;
-    }
-
-    /**
-     * Set the value of [keyname] column.
-     *
-     * @param  string $v new value
-     * @return CcStreamSetting The current object (for fluent API support)
-     */
-    public function setDbKeyName($v)
-    {
-        if ($v !== null) {
-            $v = (string) $v;
-        }
-
-        if ($this->keyname !== $v) {
-            $this->keyname = $v;
-            $this->modifiedColumns[] = CcStreamSettingPeer::KEYNAME;
-        }
-
-
-        return $this;
-    } // setDbKeyName()
-
-    /**
-     * Set the value of [value] column.
-     *
-     * @param  string $v new value
-     * @return CcStreamSetting The current object (for fluent API support)
-     */
-    public function setDbValue($v)
-    {
-        if ($v !== null) {
-            $v = (string) $v;
-        }
-
-        if ($this->value !== $v) {
-            $this->value = $v;
-            $this->modifiedColumns[] = CcStreamSettingPeer::VALUE;
-        }
-
-
-        return $this;
-    } // setDbValue()
-
-    /**
-     * Set the value of [type] column.
-     *
-     * @param  string $v new value
-     * @return CcStreamSetting The current object (for fluent API support)
-     */
-    public function setDbType($v)
-    {
-        if ($v !== null) {
-            $v = (string) $v;
-        }
-
-        if ($this->type !== $v) {
-            $this->type = $v;
-            $this->modifiedColumns[] = CcStreamSettingPeer::TYPE;
-        }
-
-
-        return $this;
-    } // setDbType()
-
-    /**
-     * Indicates whether the columns in this object are only set to default values.
-     *
-     * This method can be used in conjunction with isModified() to indicate whether an object is both
-     * modified _and_ has some values set which are non-default.
-     *
-     * @return boolean Whether the columns in this object are only been set with default values.
-     */
-    public function hasOnlyDefaultValues()
-    {
-        // otherwise, everything was equal, so return true
-        return true;
-    } // hasOnlyDefaultValues()
-
-    /**
-     * Hydrates (populates) the object variables with values from the database resultset.
-     *
-     * An offset (0-based "start column") is specified so that objects can be hydrated
-     * with a subset of the columns in the resultset rows.  This is needed, for example,
-     * for results of JOIN queries where the resultset row includes columns from two or
-     * more tables.
-     *
-     * @param array $row The row returned by PDOStatement->fetch(PDO::FETCH_NUM)
-     * @param int $startcol 0-based offset column which indicates which resultset column to start with.
-     * @param boolean $rehydrate Whether this object is being re-hydrated from the database.
-     * @return int             next starting column
-     * @throws PropelException - Any caught Exception will be rewrapped as a PropelException.
-     */
-    public function hydrate($row, $startcol = 0, $rehydrate = false)
-    {
-        try {
-
-            $this->keyname = ($row[$startcol + 0] !== null) ? (string) $row[$startcol + 0] : null;
-            $this->value = ($row[$startcol + 1] !== null) ? (string) $row[$startcol + 1] : null;
-            $this->type = ($row[$startcol + 2] !== null) ? (string) $row[$startcol + 2] : null;
-            $this->resetModified();
-
-            $this->setNew(false);
-
-            if ($rehydrate) {
-                $this->ensureConsistency();
-            }
-            $this->postHydrate($row, $startcol, $rehydrate);
-
-            return $startcol + 3; // 3 = CcStreamSettingPeer::NUM_HYDRATE_COLUMNS.
-
-        } catch (Exception $e) {
-            throw new PropelException("Error populating CcStreamSetting object", $e);
-        }
-    }
-
-    /**
-     * Checks and repairs the internal consistency of the object.
-     *
-     * This method is executed after an already-instantiated object is re-hydrated
-     * from the database.  It exists to check any foreign keys to make sure that
-     * the objects related to the current object are correct based on foreign key.
-     *
-     * You can override this method in the stub class, but you should always invoke
-     * the base method from the overridden method (i.e. parent::ensureConsistency()),
-     * in case your model changes.
-     *
-     * @throws PropelException
-     */
-    public function ensureConsistency()
-    {
-
-    } // ensureConsistency
-
-    /**
-     * Reloads this object from datastore based on primary key and (optionally) resets all associated objects.
-     *
-     * This will only work if the object has been saved and has a valid primary key set.
-     *
-     * @param boolean $deep (optional) Whether to also de-associated any related objects.
-     * @param PropelPDO $con (optional) The PropelPDO connection to use.
-     * @return void
-     * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db
-     */
-    public function reload($deep = false, PropelPDO $con = null)
-    {
-        if ($this->isDeleted()) {
-            throw new PropelException("Cannot reload a deleted object.");
-        }
-
-        if ($this->isNew()) {
-            throw new PropelException("Cannot reload an unsaved object.");
-        }
-
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_READ);
-        }
-
-        // We don't need to alter the object instance pool; we're just modifying this instance
-        // already in the pool.
-
-        $stmt = CcStreamSettingPeer::doSelectStmt($this->buildPkeyCriteria(), $con);
-        $row = $stmt->fetch(PDO::FETCH_NUM);
-        $stmt->closeCursor();
-        if (!$row) {
-            throw new PropelException('Cannot find matching row in the database to reload object values.');
-        }
-        $this->hydrate($row, 0, true); // rehydrate
-
-        if ($deep) {  // also de-associate any related objects?
-
-        } // if (deep)
-    }
-
-    /**
-     * Removes this object from datastore and sets delete attribute.
-     *
-     * @param PropelPDO $con
-     * @return void
-     * @throws PropelException
-     * @throws Exception
-     * @see        BaseObject::setDeleted()
-     * @see        BaseObject::isDeleted()
-     */
-    public function delete(PropelPDO $con = null)
-    {
-        if ($this->isDeleted()) {
-            throw new PropelException("This object has already been deleted.");
-        }
-
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
-        }
-
-        $con->beginTransaction();
-        try {
-            $deleteQuery = CcStreamSettingQuery::create()
-                ->filterByPrimaryKey($this->getPrimaryKey());
-            $ret = $this->preDelete($con);
-            if ($ret) {
-                $deleteQuery->delete($con);
-                $this->postDelete($con);
-                $con->commit();
-                $this->setDeleted(true);
-            } else {
-                $con->commit();
-            }
-        } catch (Exception $e) {
-            $con->rollBack();
-            throw $e;
-        }
-    }
-
-    /**
-     * Persists this object to the database.
-     *
-     * If the object is new, it inserts it; otherwise an update is performed.
-     * All modified related objects will also be persisted in the doSave()
-     * method.  This method wraps all precipitate database operations in a
-     * single transaction.
-     *
-     * @param PropelPDO $con
-     * @return int             The number of rows affected by this insert/update and any referring fk objects' save() operations.
-     * @throws PropelException
-     * @throws Exception
-     * @see        doSave()
-     */
-    public function save(PropelPDO $con = null)
-    {
-        if ($this->isDeleted()) {
-            throw new PropelException("You cannot save an object that has been deleted.");
-        }
-
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
-        }
-
-        $con->beginTransaction();
-        $isInsert = $this->isNew();
-        try {
-            $ret = $this->preSave($con);
-            if ($isInsert) {
-                $ret = $ret && $this->preInsert($con);
-            } else {
-                $ret = $ret && $this->preUpdate($con);
-            }
-            if ($ret) {
-                $affectedRows = $this->doSave($con);
-                if ($isInsert) {
-                    $this->postInsert($con);
-                } else {
-                    $this->postUpdate($con);
-                }
-                $this->postSave($con);
-                CcStreamSettingPeer::addInstanceToPool($this);
-            } else {
-                $affectedRows = 0;
-            }
-            $con->commit();
-
-            return $affectedRows;
-        } catch (Exception $e) {
-            $con->rollBack();
-            throw $e;
-        }
-    }
-
-    /**
-     * Performs the work of inserting or updating the row in the database.
-     *
-     * If the object is new, it inserts it; otherwise an update is performed.
-     * All related objects are also updated in this method.
-     *
-     * @param PropelPDO $con
-     * @return int             The number of rows affected by this insert/update and any referring fk objects' save() operations.
-     * @throws PropelException
-     * @see        save()
-     */
-    protected function doSave(PropelPDO $con)
-    {
-        $affectedRows = 0; // initialize var to track total num of affected rows
-        if (!$this->alreadyInSave) {
-            $this->alreadyInSave = true;
-
-            if ($this->isNew() || $this->isModified()) {
-                // persist changes
-                if ($this->isNew()) {
-                    $this->doInsert($con);
-                } else {
-                    $this->doUpdate($con);
-                }
-                $affectedRows += 1;
-                $this->resetModified();
-            }
-
-            $this->alreadyInSave = false;
-
-        }
-
-        return $affectedRows;
-    } // doSave()
-
-    /**
-     * Insert the row in the database.
-     *
-     * @param PropelPDO $con
-     *
-     * @throws PropelException
-     * @see        doSave()
-     */
-    protected function doInsert(PropelPDO $con)
-    {
-        $modifiedColumns = array();
-        $index = 0;
-
-
-         // check the columns in natural order for more readable SQL queries
-        if ($this->isColumnModified(CcStreamSettingPeer::KEYNAME)) {
-            $modifiedColumns[':p' . $index++]  = '"keyname"';
-        }
-        if ($this->isColumnModified(CcStreamSettingPeer::VALUE)) {
-            $modifiedColumns[':p' . $index++]  = '"value"';
-        }
-        if ($this->isColumnModified(CcStreamSettingPeer::TYPE)) {
-            $modifiedColumns[':p' . $index++]  = '"type"';
-        }
-
-        $sql = sprintf(
-            'INSERT INTO "cc_stream_setting" (%s) VALUES (%s)',
-            implode(', ', $modifiedColumns),
-            implode(', ', array_keys($modifiedColumns))
-        );
-
-        try {
-            $stmt = $con->prepare($sql);
-            foreach ($modifiedColumns as $identifier => $columnName) {
-                switch ($columnName) {
-                    case '"keyname"':
-                        $stmt->bindValue($identifier, $this->keyname, PDO::PARAM_STR);
-                        break;
-                    case '"value"':
-                        $stmt->bindValue($identifier, $this->value, PDO::PARAM_STR);
-                        break;
-                    case '"type"':
-                        $stmt->bindValue($identifier, $this->type, PDO::PARAM_STR);
-                        break;
-                }
-            }
-            $stmt->execute();
-        } catch (Exception $e) {
-            Propel::log($e->getMessage(), Propel::LOG_ERR);
-            throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), $e);
-        }
-
-        $this->setNew(false);
-    }
-
-    /**
-     * Update the row in the database.
-     *
-     * @param PropelPDO $con
-     *
-     * @see        doSave()
-     */
-    protected function doUpdate(PropelPDO $con)
-    {
-        $selectCriteria = $this->buildPkeyCriteria();
-        $valuesCriteria = $this->buildCriteria();
-        BasePeer::doUpdate($selectCriteria, $valuesCriteria, $con);
-    }
-
-    /**
-     * Array of ValidationFailed objects.
-     * @var        array ValidationFailed[]
-     */
-    protected $validationFailures = array();
-
-    /**
-     * Gets any ValidationFailed objects that resulted from last call to validate().
-     *
-     *
-     * @return array ValidationFailed[]
-     * @see        validate()
-     */
-    public function getValidationFailures()
-    {
-        return $this->validationFailures;
-    }
-
-    /**
-     * Validates the objects modified field values and all objects related to this table.
-     *
-     * If $columns is either a column name or an array of column names
-     * only those columns are validated.
-     *
-     * @param mixed $columns Column name or an array of column names.
-     * @return boolean Whether all columns pass validation.
-     * @see        doValidate()
-     * @see        getValidationFailures()
-     */
-    public function validate($columns = null)
-    {
-        $res = $this->doValidate($columns);
-        if ($res === true) {
-            $this->validationFailures = array();
-
-            return true;
-        }
-
-        $this->validationFailures = $res;
-
-        return false;
-    }
-
-    /**
-     * This function performs the validation work for complex object models.
-     *
-     * In addition to checking the current object, all related objects will
-     * also be validated.  If all pass then <code>true</code> is returned; otherwise
-     * an aggregated array of ValidationFailed objects will be returned.
-     *
-     * @param array $columns Array of column names to validate.
-     * @return mixed <code>true</code> if all validations pass; array of <code>ValidationFailed</code> objects otherwise.
-     */
-    protected function doValidate($columns = null)
-    {
-        if (!$this->alreadyInValidation) {
-            $this->alreadyInValidation = true;
-            $retval = null;
-
-            $failureMap = array();
-
-
-            if (($retval = CcStreamSettingPeer::doValidate($this, $columns)) !== true) {
-                $failureMap = array_merge($failureMap, $retval);
-            }
-
-
-
-            $this->alreadyInValidation = false;
-        }
-
-        return (!empty($failureMap) ? $failureMap : true);
-    }
-
-    /**
-     * Retrieves a field from the object by name passed in as a string.
-     *
-     * @param string $name name
-     * @param string $type The type of fieldname the $name is of:
-     *               one of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME
-     *               BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
-     *               Defaults to BasePeer::TYPE_PHPNAME
-     * @return mixed Value of field.
-     */
-    public function getByName($name, $type = BasePeer::TYPE_PHPNAME)
-    {
-        $pos = CcStreamSettingPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
-        $field = $this->getByPosition($pos);
-
-        return $field;
-    }
-
-    /**
-     * Retrieves a field from the object by Position as specified in the xml schema.
-     * Zero-based.
-     *
-     * @param int $pos position in xml schema
-     * @return mixed Value of field at $pos
-     */
-    public function getByPosition($pos)
-    {
-        switch ($pos) {
-            case 0:
-                return $this->getDbKeyName();
-                break;
-            case 1:
-                return $this->getDbValue();
-                break;
-            case 2:
-                return $this->getDbType();
-                break;
-            default:
-                return null;
-                break;
-        } // switch()
-    }
-
-    /**
-     * Exports the object as an array.
-     *
-     * You can specify the key type of the array by passing one of the class
-     * type constants.
-     *
-     * @param     string  $keyType (optional) One of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
-     *                    BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
-     *                    Defaults to BasePeer::TYPE_PHPNAME.
-     * @param     boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to true.
-     * @param     array $alreadyDumpedObjects List of objects to skip to avoid recursion
-     *
-     * @return array an associative array containing the field names (as keys) and field values
-     */
-    public function toArray($keyType = BasePeer::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array())
-    {
-        if (isset($alreadyDumpedObjects['CcStreamSetting'][$this->getPrimaryKey()])) {
-            return '*RECURSION*';
-        }
-        $alreadyDumpedObjects['CcStreamSetting'][$this->getPrimaryKey()] = true;
-        $keys = CcStreamSettingPeer::getFieldNames($keyType);
-        $result = array(
-            $keys[0] => $this->getDbKeyName(),
-            $keys[1] => $this->getDbValue(),
-            $keys[2] => $this->getDbType(),
-        );
-        $virtualColumns = $this->virtualColumns;
-        foreach ($virtualColumns as $key => $virtualColumn) {
-            $result[$key] = $virtualColumn;
-        }
-
-
-        return $result;
-    }
-
-    /**
-     * Sets a field from the object by name passed in as a string.
-     *
-     * @param string $name peer name
-     * @param mixed $value field value
-     * @param string $type The type of fieldname the $name is of:
-     *                     one of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME
-     *                     BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
-     *                     Defaults to BasePeer::TYPE_PHPNAME
-     * @return void
-     */
-    public function setByName($name, $value, $type = BasePeer::TYPE_PHPNAME)
-    {
-        $pos = CcStreamSettingPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
-
-        $this->setByPosition($pos, $value);
-    }
-
-    /**
-     * Sets a field from the object by Position as specified in the xml schema.
-     * Zero-based.
-     *
-     * @param int $pos position in xml schema
-     * @param mixed $value field value
-     * @return void
-     */
-    public function setByPosition($pos, $value)
-    {
-        switch ($pos) {
-            case 0:
-                $this->setDbKeyName($value);
-                break;
-            case 1:
-                $this->setDbValue($value);
-                break;
-            case 2:
-                $this->setDbType($value);
-                break;
-        } // switch()
-    }
-
-    /**
-     * Populates the object using an array.
-     *
-     * This is particularly useful when populating an object from one of the
-     * request arrays (e.g. $_POST).  This method goes through the column
-     * names, checking to see whether a matching key exists in populated
-     * array. If so the setByName() method is called for that column.
-     *
-     * You can specify the key type of the array by additionally passing one
-     * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
-     * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
-     * The default key type is the column's BasePeer::TYPE_PHPNAME
-     *
-     * @param array  $arr     An array to populate the object from.
-     * @param string $keyType The type of keys the array uses.
-     * @return void
-     */
-    public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
-    {
-        $keys = CcStreamSettingPeer::getFieldNames($keyType);
-
-        if (array_key_exists($keys[0], $arr)) $this->setDbKeyName($arr[$keys[0]]);
-        if (array_key_exists($keys[1], $arr)) $this->setDbValue($arr[$keys[1]]);
-        if (array_key_exists($keys[2], $arr)) $this->setDbType($arr[$keys[2]]);
-    }
-
-    /**
-     * Build a Criteria object containing the values of all modified columns in this object.
-     *
-     * @return Criteria The Criteria object containing all modified values.
-     */
-    public function buildCriteria()
-    {
-        $criteria = new Criteria(CcStreamSettingPeer::DATABASE_NAME);
-
-        if ($this->isColumnModified(CcStreamSettingPeer::KEYNAME)) $criteria->add(CcStreamSettingPeer::KEYNAME, $this->keyname);
-        if ($this->isColumnModified(CcStreamSettingPeer::VALUE)) $criteria->add(CcStreamSettingPeer::VALUE, $this->value);
-        if ($this->isColumnModified(CcStreamSettingPeer::TYPE)) $criteria->add(CcStreamSettingPeer::TYPE, $this->type);
-
-        return $criteria;
-    }
-
-    /**
-     * Builds a Criteria object containing the primary key for this object.
-     *
-     * Unlike buildCriteria() this method includes the primary key values regardless
-     * of whether or not they have been modified.
-     *
-     * @return Criteria The Criteria object containing value(s) for primary key(s).
-     */
-    public function buildPkeyCriteria()
-    {
-        $criteria = new Criteria(CcStreamSettingPeer::DATABASE_NAME);
-        $criteria->add(CcStreamSettingPeer::KEYNAME, $this->keyname);
-
-        return $criteria;
-    }
-
-    /**
-     * Returns the primary key for this object (row).
-     * @return string
-     */
-    public function getPrimaryKey()
-    {
-        return $this->getDbKeyName();
-    }
-
-    /**
-     * Generic method to set the primary key (keyname column).
-     *
-     * @param  string $key Primary key.
-     * @return void
-     */
-    public function setPrimaryKey($key)
-    {
-        $this->setDbKeyName($key);
-    }
-
-    /**
-     * Returns true if the primary key for this object is null.
-     * @return boolean
-     */
-    public function isPrimaryKeyNull()
-    {
-
-        return null === $this->getDbKeyName();
-    }
-
-    /**
-     * Sets contents of passed object to values from current object.
-     *
-     * If desired, this method can also make copies of all associated (fkey referrers)
-     * objects.
-     *
-     * @param object $copyObj An object of CcStreamSetting (or compatible) type.
-     * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row.
-     * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new.
-     * @throws PropelException
-     */
-    public function copyInto($copyObj, $deepCopy = false, $makeNew = true)
-    {
-        $copyObj->setDbValue($this->getDbValue());
-        $copyObj->setDbType($this->getDbType());
-        if ($makeNew) {
-            $copyObj->setNew(true);
-            $copyObj->setDbKeyName(NULL); // this is a auto-increment column, so set to default value
-        }
-    }
-
-    /**
-     * Makes a copy of this object that will be inserted as a new row in table when saved.
-     * It creates a new object filling in the simple attributes, but skipping any primary
-     * keys that are defined for the table.
-     *
-     * If desired, this method can also make copies of all associated (fkey referrers)
-     * objects.
-     *
-     * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row.
-     * @return CcStreamSetting Clone of current object.
-     * @throws PropelException
-     */
-    public function copy($deepCopy = false)
-    {
-        // we use get_class(), because this might be a subclass
-        $clazz = get_class($this);
-        $copyObj = new $clazz();
-        $this->copyInto($copyObj, $deepCopy);
-
-        return $copyObj;
-    }
-
-    /**
-     * Returns a peer instance associated with this om.
-     *
-     * Since Peer classes are not to have any instance attributes, this method returns the
-     * same instance for all member of this class. The method could therefore
-     * be static, but this would prevent one from overriding the behavior.
-     *
-     * @return CcStreamSettingPeer
-     */
-    public function getPeer()
-    {
-        if (self::$peer === null) {
-            self::$peer = new CcStreamSettingPeer();
-        }
-
-        return self::$peer;
-    }
-
-    /**
-     * Clears the current object and sets all attributes to their default values
-     */
-    public function clear()
-    {
-        $this->keyname = null;
-        $this->value = null;
-        $this->type = null;
-        $this->alreadyInSave = false;
-        $this->alreadyInValidation = false;
-        $this->alreadyInClearAllReferencesDeep = false;
-        $this->clearAllReferences();
-        $this->resetModified();
-        $this->setNew(true);
-        $this->setDeleted(false);
-    }
-
-    /**
-     * Resets all references to other model objects or collections of model objects.
-     *
-     * This method is a user-space workaround for PHP's inability to garbage collect
-     * objects with circular references (even in PHP 5.3). This is currently necessary
-     * when using Propel in certain daemon or large-volume/high-memory operations.
-     *
-     * @param boolean $deep Whether to also clear the references on all referrer objects.
-     */
-    public function clearAllReferences($deep = false)
-    {
-        if ($deep && !$this->alreadyInClearAllReferencesDeep) {
-            $this->alreadyInClearAllReferencesDeep = true;
-
-            $this->alreadyInClearAllReferencesDeep = false;
-        } // if ($deep)
-
-    }
-
-    /**
-     * return the string representation of this object
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return (string) $this->exportTo(CcStreamSettingPeer::DEFAULT_STRING_FORMAT);
-    }
-
-    /**
-     * return true is the object is in saving state
-     *
-     * @return boolean
-     */
-    public function isAlreadyInSave()
-    {
-        return $this->alreadyInSave;
-    }
-
-}
diff --git a/legacy/application/models/airtime/om/BaseCcStreamSettingPeer.php b/legacy/application/models/airtime/om/BaseCcStreamSettingPeer.php
deleted file mode 100644
index b869d7dec..000000000
--- a/legacy/application/models/airtime/om/BaseCcStreamSettingPeer.php
+++ /dev/null
@@ -1,761 +0,0 @@
-<?php
-
-
-/**
- * Base static class for performing query and update operations on the 'cc_stream_setting' table.
- *
- *
- *
- * @package propel.generator.airtime.om
- */
-abstract class BaseCcStreamSettingPeer
-{
-
-    /** the default database name for this class */
-    const DATABASE_NAME = 'airtime';
-
-    /** the table name for this class */
-    const TABLE_NAME = 'cc_stream_setting';
-
-    /** the related Propel class for this table */
-    const OM_CLASS = 'CcStreamSetting';
-
-    /** the related TableMap class for this table */
-    const TM_CLASS = 'CcStreamSettingTableMap';
-
-    /** The total number of columns. */
-    const NUM_COLUMNS = 3;
-
-    /** The number of lazy-loaded columns. */
-    const NUM_LAZY_LOAD_COLUMNS = 0;
-
-    /** The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS) */
-    const NUM_HYDRATE_COLUMNS = 3;
-
-    /** the column name for the keyname field */
-    const KEYNAME = 'cc_stream_setting.keyname';
-
-    /** the column name for the value field */
-    const VALUE = 'cc_stream_setting.value';
-
-    /** the column name for the type field */
-    const TYPE = 'cc_stream_setting.type';
-
-    /** The default string format for model objects of the related table **/
-    const DEFAULT_STRING_FORMAT = 'YAML';
-
-    /**
-     * An identity map to hold any loaded instances of CcStreamSetting objects.
-     * This must be public so that other peer classes can access this when hydrating from JOIN
-     * queries.
-     * @var        array CcStreamSetting[]
-     */
-    public static $instances = array();
-
-
-    /**
-     * holds an array of fieldnames
-     *
-     * first dimension keys are the type constants
-     * e.g. CcStreamSettingPeer::$fieldNames[CcStreamSettingPeer::TYPE_PHPNAME][0] = 'Id'
-     */
-    protected static $fieldNames = array (
-        BasePeer::TYPE_PHPNAME => array ('DbKeyName', 'DbValue', 'DbType', ),
-        BasePeer::TYPE_STUDLYPHPNAME => array ('dbKeyName', 'dbValue', 'dbType', ),
-        BasePeer::TYPE_COLNAME => array (CcStreamSettingPeer::KEYNAME, CcStreamSettingPeer::VALUE, CcStreamSettingPeer::TYPE, ),
-        BasePeer::TYPE_RAW_COLNAME => array ('KEYNAME', 'VALUE', 'TYPE', ),
-        BasePeer::TYPE_FIELDNAME => array ('keyname', 'value', 'type', ),
-        BasePeer::TYPE_NUM => array (0, 1, 2, )
-    );
-
-    /**
-     * holds an array of keys for quick access to the fieldnames array
-     *
-     * first dimension keys are the type constants
-     * e.g. CcStreamSettingPeer::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
-     */
-    protected static $fieldKeys = array (
-        BasePeer::TYPE_PHPNAME => array ('DbKeyName' => 0, 'DbValue' => 1, 'DbType' => 2, ),
-        BasePeer::TYPE_STUDLYPHPNAME => array ('dbKeyName' => 0, 'dbValue' => 1, 'dbType' => 2, ),
-        BasePeer::TYPE_COLNAME => array (CcStreamSettingPeer::KEYNAME => 0, CcStreamSettingPeer::VALUE => 1, CcStreamSettingPeer::TYPE => 2, ),
-        BasePeer::TYPE_RAW_COLNAME => array ('KEYNAME' => 0, 'VALUE' => 1, 'TYPE' => 2, ),
-        BasePeer::TYPE_FIELDNAME => array ('keyname' => 0, 'value' => 1, 'type' => 2, ),
-        BasePeer::TYPE_NUM => array (0, 1, 2, )
-    );
-
-    /**
-     * Translates a fieldname to another type
-     *
-     * @param      string $name field name
-     * @param      string $fromType One of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME
-     *                         BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM
-     * @param      string $toType   One of the class type constants
-     * @return string          translated name of the field.
-     * @throws PropelException - if the specified name could not be found in the fieldname mappings.
-     */
-    public static function translateFieldName($name, $fromType, $toType)
-    {
-        $toNames = CcStreamSettingPeer::getFieldNames($toType);
-        $key = isset(CcStreamSettingPeer::$fieldKeys[$fromType][$name]) ? CcStreamSettingPeer::$fieldKeys[$fromType][$name] : null;
-        if ($key === null) {
-            throw new PropelException("'$name' could not be found in the field names of type '$fromType'. These are: " . print_r(CcStreamSettingPeer::$fieldKeys[$fromType], true));
-        }
-
-        return $toNames[$key];
-    }
-
-    /**
-     * Returns an array of field names.
-     *
-     * @param      string $type The type of fieldnames to return:
-     *                      One of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME
-     *                      BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM
-     * @return array           A list of field names
-     * @throws PropelException - if the type is not valid.
-     */
-    public static function getFieldNames($type = BasePeer::TYPE_PHPNAME)
-    {
-        if (!array_key_exists($type, CcStreamSettingPeer::$fieldNames)) {
-            throw new PropelException('Method getFieldNames() expects the parameter $type to be one of the class constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME, BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. ' . $type . ' was given.');
-        }
-
-        return CcStreamSettingPeer::$fieldNames[$type];
-    }
-
-    /**
-     * Convenience method which changes table.column to alias.column.
-     *
-     * Using this method you can maintain SQL abstraction while using column aliases.
-     * <code>
-     *		$c->addAlias("alias1", TablePeer::TABLE_NAME);
-     *		$c->addJoin(TablePeer::alias("alias1", TablePeer::PRIMARY_KEY_COLUMN), TablePeer::PRIMARY_KEY_COLUMN);
-     * </code>
-     * @param      string $alias The alias for the current table.
-     * @param      string $column The column name for current table. (i.e. CcStreamSettingPeer::COLUMN_NAME).
-     * @return string
-     */
-    public static function alias($alias, $column)
-    {
-        return str_replace(CcStreamSettingPeer::TABLE_NAME.'.', $alias.'.', $column);
-    }
-
-    /**
-     * Add all the columns needed to create a new object.
-     *
-     * Note: any columns that were marked with lazyLoad="true" in the
-     * XML schema will not be added to the select list and only loaded
-     * on demand.
-     *
-     * @param      Criteria $criteria object containing the columns to add.
-     * @param      string   $alias    optional table alias
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-    public static function addSelectColumns(Criteria $criteria, $alias = null)
-    {
-        if (null === $alias) {
-            $criteria->addSelectColumn(CcStreamSettingPeer::KEYNAME);
-            $criteria->addSelectColumn(CcStreamSettingPeer::VALUE);
-            $criteria->addSelectColumn(CcStreamSettingPeer::TYPE);
-        } else {
-            $criteria->addSelectColumn($alias . '.keyname');
-            $criteria->addSelectColumn($alias . '.value');
-            $criteria->addSelectColumn($alias . '.type');
-        }
-    }
-
-    /**
-     * Returns the number of rows matching criteria.
-     *
-     * @param      Criteria $criteria
-     * @param      boolean $distinct Whether to select only distinct columns; deprecated: use Criteria->setDistinct() instead.
-     * @param      PropelPDO $con
-     * @return int Number of matching rows.
-     */
-    public static function doCount(Criteria $criteria, $distinct = false, PropelPDO $con = null)
-    {
-        // we may modify criteria, so copy it first
-        $criteria = clone $criteria;
-
-        // We need to set the primary table name, since in the case that there are no WHERE columns
-        // it will be impossible for the BasePeer::createSelectSql() method to determine which
-        // tables go into the FROM clause.
-        $criteria->setPrimaryTableName(CcStreamSettingPeer::TABLE_NAME);
-
-        if ($distinct && !in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
-            $criteria->setDistinct();
-        }
-
-        if (!$criteria->hasSelectClause()) {
-            CcStreamSettingPeer::addSelectColumns($criteria);
-        }
-
-        $criteria->clearOrderByColumns(); // ORDER BY won't ever affect the count
-        $criteria->setDbName(CcStreamSettingPeer::DATABASE_NAME); // Set the correct dbName
-
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_READ);
-        }
-        // BasePeer returns a PDOStatement
-        $stmt = BasePeer::doCount($criteria, $con);
-
-        if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
-            $count = (int) $row[0];
-        } else {
-            $count = 0; // no rows returned; we infer that means 0 matches.
-        }
-        $stmt->closeCursor();
-
-        return $count;
-    }
-    /**
-     * Selects one object from the DB.
-     *
-     * @param      Criteria $criteria object used to create the SELECT statement.
-     * @param      PropelPDO $con
-     * @return CcStreamSetting
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-    public static function doSelectOne(Criteria $criteria, PropelPDO $con = null)
-    {
-        $critcopy = clone $criteria;
-        $critcopy->setLimit(1);
-        $objects = CcStreamSettingPeer::doSelect($critcopy, $con);
-        if ($objects) {
-            return $objects[0];
-        }
-
-        return null;
-    }
-    /**
-     * Selects several row from the DB.
-     *
-     * @param      Criteria $criteria The Criteria object used to build the SELECT statement.
-     * @param      PropelPDO $con
-     * @return array           Array of selected Objects
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-    public static function doSelect(Criteria $criteria, PropelPDO $con = null)
-    {
-        return CcStreamSettingPeer::populateObjects(CcStreamSettingPeer::doSelectStmt($criteria, $con));
-    }
-    /**
-     * Prepares the Criteria object and uses the parent doSelect() method to execute a PDOStatement.
-     *
-     * Use this method directly if you want to work with an executed statement directly (for example
-     * to perform your own object hydration).
-     *
-     * @param      Criteria $criteria The Criteria object used to build the SELECT statement.
-     * @param      PropelPDO $con The connection to use
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     * @return PDOStatement The executed PDOStatement object.
-     * @see        BasePeer::doSelect()
-     */
-    public static function doSelectStmt(Criteria $criteria, PropelPDO $con = null)
-    {
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_READ);
-        }
-
-        if (!$criteria->hasSelectClause()) {
-            $criteria = clone $criteria;
-            CcStreamSettingPeer::addSelectColumns($criteria);
-        }
-
-        // Set the correct dbName
-        $criteria->setDbName(CcStreamSettingPeer::DATABASE_NAME);
-
-        // BasePeer returns a PDOStatement
-        return BasePeer::doSelect($criteria, $con);
-    }
-    /**
-     * Adds an object to the instance pool.
-     *
-     * Propel keeps cached copies of objects in an instance pool when they are retrieved
-     * from the database.  In some cases -- especially when you override doSelect*()
-     * methods in your stub classes -- you may need to explicitly add objects
-     * to the cache in order to ensure that the same objects are always returned by doSelect*()
-     * and retrieveByPK*() calls.
-     *
-     * @param CcStreamSetting $obj A CcStreamSetting object.
-     * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
-     */
-    public static function addInstanceToPool($obj, $key = null)
-    {
-        if (Propel::isInstancePoolingEnabled()) {
-            if ($key === null) {
-                $key = (string) $obj->getDbKeyName();
-            } // if key === null
-            CcStreamSettingPeer::$instances[$key] = $obj;
-        }
-    }
-
-    /**
-     * Removes an object from the instance pool.
-     *
-     * Propel keeps cached copies of objects in an instance pool when they are retrieved
-     * from the database.  In some cases -- especially when you override doDelete
-     * methods in your stub classes -- you may need to explicitly remove objects
-     * from the cache in order to prevent returning objects that no longer exist.
-     *
-     * @param      mixed $value A CcStreamSetting object or a primary key value.
-     *
-     * @return void
-     * @throws PropelException - if the value is invalid.
-     */
-    public static function removeInstanceFromPool($value)
-    {
-        if (Propel::isInstancePoolingEnabled() && $value !== null) {
-            if (is_object($value) && $value instanceof CcStreamSetting) {
-                $key = (string) $value->getDbKeyName();
-            } elseif (is_scalar($value)) {
-                // assume we've been passed a primary key
-                $key = (string) $value;
-            } else {
-                $e = new PropelException("Invalid value passed to removeInstanceFromPool().  Expected primary key or CcStreamSetting object; got " . (is_object($value) ? get_class($value) . ' object.' : var_export($value,true)));
-                throw $e;
-            }
-
-            unset(CcStreamSettingPeer::$instances[$key]);
-        }
-    } // removeInstanceFromPool()
-
-    /**
-     * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table.
-     *
-     * For tables with a single-column primary key, that simple pkey value will be returned.  For tables with
-     * a multi-column primary key, a serialize()d version of the primary key will be returned.
-     *
-     * @param      string $key The key (@see getPrimaryKeyHash()) for this instance.
-     * @return CcStreamSetting Found object or null if 1) no instance exists for specified key or 2) instance pooling has been disabled.
-     * @see        getPrimaryKeyHash()
-     */
-    public static function getInstanceFromPool($key)
-    {
-        if (Propel::isInstancePoolingEnabled()) {
-            if (isset(CcStreamSettingPeer::$instances[$key])) {
-                return CcStreamSettingPeer::$instances[$key];
-            }
-        }
-
-        return null; // just to be explicit
-    }
-
-    /**
-     * Clear the instance pool.
-     *
-     * @return void
-     */
-    public static function clearInstancePool($and_clear_all_references = false)
-    {
-      if ($and_clear_all_references) {
-        foreach (CcStreamSettingPeer::$instances as $instance) {
-          $instance->clearAllReferences(true);
-        }
-      }
-        CcStreamSettingPeer::$instances = array();
-    }
-
-    /**
-     * Method to invalidate the instance pool of all tables related to cc_stream_setting
-     * by a foreign key with ON DELETE CASCADE
-     */
-    public static function clearRelatedInstancePool()
-    {
-    }
-
-    /**
-     * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table.
-     *
-     * For tables with a single-column primary key, that simple pkey value will be returned.  For tables with
-     * a multi-column primary key, a serialize()d version of the primary key will be returned.
-     *
-     * @param      array $row PropelPDO resultset row.
-     * @param      int $startcol The 0-based offset for reading from the resultset row.
-     * @return string A string version of PK or null if the components of primary key in result array are all null.
-     */
-    public static function getPrimaryKeyHashFromRow($row, $startcol = 0)
-    {
-        // If the PK cannot be derived from the row, return null.
-        if ($row[$startcol] === null) {
-            return null;
-        }
-
-        return (string) $row[$startcol];
-    }
-
-    /**
-     * Retrieves the primary key from the DB resultset row
-     * For tables with a single-column primary key, that simple pkey value will be returned.  For tables with
-     * a multi-column primary key, an array of the primary key columns will be returned.
-     *
-     * @param      array $row PropelPDO resultset row.
-     * @param      int $startcol The 0-based offset for reading from the resultset row.
-     * @return mixed The primary key of the row
-     */
-    public static function getPrimaryKeyFromRow($row, $startcol = 0)
-    {
-
-        return (string) $row[$startcol];
-    }
-
-    /**
-     * The returned array will contain objects of the default type or
-     * objects that inherit from the default.
-     *
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-    public static function populateObjects(PDOStatement $stmt)
-    {
-        $results = array();
-
-        // set the class once to avoid overhead in the loop
-        $cls = CcStreamSettingPeer::getOMClass();
-        // populate the object(s)
-        while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
-            $key = CcStreamSettingPeer::getPrimaryKeyHashFromRow($row, 0);
-            if (null !== ($obj = CcStreamSettingPeer::getInstanceFromPool($key))) {
-                // We no longer rehydrate the object, since this can cause data loss.
-                // See http://www.propelorm.org/ticket/509
-                // $obj->hydrate($row, 0, true); // rehydrate
-                $results[] = $obj;
-            } else {
-                $obj = new $cls();
-                $obj->hydrate($row);
-                $results[] = $obj;
-                CcStreamSettingPeer::addInstanceToPool($obj, $key);
-            } // if key exists
-        }
-        $stmt->closeCursor();
-
-        return $results;
-    }
-    /**
-     * Populates an object of the default type or an object that inherit from the default.
-     *
-     * @param      array $row PropelPDO resultset row.
-     * @param      int $startcol The 0-based offset for reading from the resultset row.
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     * @return array (CcStreamSetting object, last column rank)
-     */
-    public static function populateObject($row, $startcol = 0)
-    {
-        $key = CcStreamSettingPeer::getPrimaryKeyHashFromRow($row, $startcol);
-        if (null !== ($obj = CcStreamSettingPeer::getInstanceFromPool($key))) {
-            // We no longer rehydrate the object, since this can cause data loss.
-            // See http://www.propelorm.org/ticket/509
-            // $obj->hydrate($row, $startcol, true); // rehydrate
-            $col = $startcol + CcStreamSettingPeer::NUM_HYDRATE_COLUMNS;
-        } else {
-            $cls = CcStreamSettingPeer::OM_CLASS;
-            $obj = new $cls();
-            $col = $obj->hydrate($row, $startcol);
-            CcStreamSettingPeer::addInstanceToPool($obj, $key);
-        }
-
-        return array($obj, $col);
-    }
-
-    /**
-     * Returns the TableMap related to this peer.
-     * This method is not needed for general use but a specific application could have a need.
-     * @return TableMap
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-    public static function getTableMap()
-    {
-        return Propel::getDatabaseMap(CcStreamSettingPeer::DATABASE_NAME)->getTable(CcStreamSettingPeer::TABLE_NAME);
-    }
-
-    /**
-     * Add a TableMap instance to the database for this peer class.
-     */
-    public static function buildTableMap()
-    {
-      $dbMap = Propel::getDatabaseMap(BaseCcStreamSettingPeer::DATABASE_NAME);
-      if (!$dbMap->hasTable(BaseCcStreamSettingPeer::TABLE_NAME)) {
-        $dbMap->addTableObject(new \CcStreamSettingTableMap());
-      }
-    }
-
-    /**
-     * The class that the Peer will make instances of.
-     *
-     *
-     * @return string ClassName
-     */
-    public static function getOMClass($row = 0, $colnum = 0)
-    {
-        return CcStreamSettingPeer::OM_CLASS;
-    }
-
-    /**
-     * Performs an INSERT on the database, given a CcStreamSetting or Criteria object.
-     *
-     * @param      mixed $values Criteria or CcStreamSetting object containing data that is used to create the INSERT statement.
-     * @param      PropelPDO $con the PropelPDO connection to use
-     * @return mixed           The new primary key.
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-    public static function doInsert($values, PropelPDO $con = null)
-    {
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
-        }
-
-        if ($values instanceof Criteria) {
-            $criteria = clone $values; // rename for clarity
-        } else {
-            $criteria = $values->buildCriteria(); // build Criteria from CcStreamSetting object
-        }
-
-
-        // Set the correct dbName
-        $criteria->setDbName(CcStreamSettingPeer::DATABASE_NAME);
-
-        try {
-            // use transaction because $criteria could contain info
-            // for more than one table (I guess, conceivably)
-            $con->beginTransaction();
-            $pk = BasePeer::doInsert($criteria, $con);
-            $con->commit();
-        } catch (Exception $e) {
-            $con->rollBack();
-            throw $e;
-        }
-
-        return $pk;
-    }
-
-    /**
-     * Performs an UPDATE on the database, given a CcStreamSetting or Criteria object.
-     *
-     * @param      mixed $values Criteria or CcStreamSetting object containing data that is used to create the UPDATE statement.
-     * @param      PropelPDO $con The connection to use (specify PropelPDO connection object to exert more control over transactions).
-     * @return int             The number of affected rows (if supported by underlying database driver).
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-    public static function doUpdate($values, PropelPDO $con = null)
-    {
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
-        }
-
-        $selectCriteria = new Criteria(CcStreamSettingPeer::DATABASE_NAME);
-
-        if ($values instanceof Criteria) {
-            $criteria = clone $values; // rename for clarity
-
-            $comparison = $criteria->getComparison(CcStreamSettingPeer::KEYNAME);
-            $value = $criteria->remove(CcStreamSettingPeer::KEYNAME);
-            if ($value) {
-                $selectCriteria->add(CcStreamSettingPeer::KEYNAME, $value, $comparison);
-            } else {
-                $selectCriteria->setPrimaryTableName(CcStreamSettingPeer::TABLE_NAME);
-            }
-
-        } else { // $values is CcStreamSetting object
-            $criteria = $values->buildCriteria(); // gets full criteria
-            $selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s)
-        }
-
-        // set the correct dbName
-        $criteria->setDbName(CcStreamSettingPeer::DATABASE_NAME);
-
-        return BasePeer::doUpdate($selectCriteria, $criteria, $con);
-    }
-
-    /**
-     * Deletes all rows from the cc_stream_setting table.
-     *
-     * @param      PropelPDO $con the connection to use
-     * @return int             The number of affected rows (if supported by underlying database driver).
-     * @throws PropelException
-     */
-    public static function doDeleteAll(PropelPDO $con = null)
-    {
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
-        }
-        $affectedRows = 0; // initialize var to track total num of affected rows
-        try {
-            // use transaction because $criteria could contain info
-            // for more than one table or we could emulating ON DELETE CASCADE, etc.
-            $con->beginTransaction();
-            $affectedRows += BasePeer::doDeleteAll(CcStreamSettingPeer::TABLE_NAME, $con, CcStreamSettingPeer::DATABASE_NAME);
-            // Because this db requires some delete cascade/set null emulation, we have to
-            // clear the cached instance *after* the emulation has happened (since
-            // instances get re-added by the select statement contained therein).
-            CcStreamSettingPeer::clearInstancePool();
-            CcStreamSettingPeer::clearRelatedInstancePool();
-            $con->commit();
-
-            return $affectedRows;
-        } catch (Exception $e) {
-            $con->rollBack();
-            throw $e;
-        }
-    }
-
-    /**
-     * Performs a DELETE on the database, given a CcStreamSetting or Criteria object OR a primary key value.
-     *
-     * @param      mixed $values Criteria or CcStreamSetting object or primary key or array of primary keys
-     *              which is used to create the DELETE statement
-     * @param      PropelPDO $con the connection to use
-     * @return int The number of affected rows (if supported by underlying database driver).  This includes CASCADE-related rows
-     *				if supported by native driver or if emulated using Propel.
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-     public static function doDelete($values, PropelPDO $con = null)
-     {
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
-        }
-
-        if ($values instanceof Criteria) {
-            // invalidate the cache for all objects of this type, since we have no
-            // way of knowing (without running a query) what objects should be invalidated
-            // from the cache based on this Criteria.
-            CcStreamSettingPeer::clearInstancePool();
-            // rename for clarity
-            $criteria = clone $values;
-        } elseif ($values instanceof CcStreamSetting) { // it's a model object
-            // invalidate the cache for this single object
-            CcStreamSettingPeer::removeInstanceFromPool($values);
-            // create criteria based on pk values
-            $criteria = $values->buildPkeyCriteria();
-        } else { // it's a primary key, or an array of pks
-            $criteria = new Criteria(CcStreamSettingPeer::DATABASE_NAME);
-            $criteria->add(CcStreamSettingPeer::KEYNAME, (array) $values, Criteria::IN);
-            // invalidate the cache for this object(s)
-            foreach ((array) $values as $singleval) {
-                CcStreamSettingPeer::removeInstanceFromPool($singleval);
-            }
-        }
-
-        // Set the correct dbName
-        $criteria->setDbName(CcStreamSettingPeer::DATABASE_NAME);
-
-        $affectedRows = 0; // initialize var to track total num of affected rows
-
-        try {
-            // use transaction because $criteria could contain info
-            // for more than one table or we could emulating ON DELETE CASCADE, etc.
-            $con->beginTransaction();
-
-            $affectedRows += BasePeer::doDelete($criteria, $con);
-            CcStreamSettingPeer::clearRelatedInstancePool();
-            $con->commit();
-
-            return $affectedRows;
-        } catch (Exception $e) {
-            $con->rollBack();
-            throw $e;
-        }
-    }
-
-    /**
-     * Validates all modified columns of given CcStreamSetting object.
-     * If parameter $columns is either a single column name or an array of column names
-     * than only those columns are validated.
-     *
-     * NOTICE: This does not apply to primary or foreign keys for now.
-     *
-     * @param CcStreamSetting $obj The object to validate.
-     * @param      mixed $cols Column name or array of column names.
-     *
-     * @return mixed TRUE if all columns are valid or the error message of the first invalid column.
-     */
-    public static function doValidate($obj, $cols = null)
-    {
-        $columns = array();
-
-        if ($cols) {
-            $dbMap = Propel::getDatabaseMap(CcStreamSettingPeer::DATABASE_NAME);
-            $tableMap = $dbMap->getTable(CcStreamSettingPeer::TABLE_NAME);
-
-            if (! is_array($cols)) {
-                $cols = array($cols);
-            }
-
-            foreach ($cols as $colName) {
-                if ($tableMap->hasColumn($colName)) {
-                    $get = 'get' . $tableMap->getColumn($colName)->getPhpName();
-                    $columns[$colName] = $obj->$get();
-                }
-            }
-        } else {
-
-        }
-
-        return BasePeer::doValidate(CcStreamSettingPeer::DATABASE_NAME, CcStreamSettingPeer::TABLE_NAME, $columns);
-    }
-
-    /**
-     * Retrieve a single object by pkey.
-     *
-     * @param string $pk the primary key.
-     * @param      PropelPDO $con the connection to use
-     * @return CcStreamSetting
-     */
-    public static function retrieveByPK($pk, PropelPDO $con = null)
-    {
-
-        if (null !== ($obj = CcStreamSettingPeer::getInstanceFromPool((string) $pk))) {
-            return $obj;
-        }
-
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_READ);
-        }
-
-        $criteria = new Criteria(CcStreamSettingPeer::DATABASE_NAME);
-        $criteria->add(CcStreamSettingPeer::KEYNAME, $pk);
-
-        $v = CcStreamSettingPeer::doSelect($criteria, $con);
-
-        return !empty($v) > 0 ? $v[0] : null;
-    }
-
-    /**
-     * Retrieve multiple objects by pkey.
-     *
-     * @param      array $pks List of primary keys
-     * @param      PropelPDO $con the connection to use
-     * @return CcStreamSetting[]
-     * @throws PropelException Any exceptions caught during processing will be
-     *		 rethrown wrapped into a PropelException.
-     */
-    public static function retrieveByPKs($pks, PropelPDO $con = null)
-    {
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_READ);
-        }
-
-        $objs = null;
-        if (empty($pks)) {
-            $objs = array();
-        } else {
-            $criteria = new Criteria(CcStreamSettingPeer::DATABASE_NAME);
-            $criteria->add(CcStreamSettingPeer::KEYNAME, $pks, Criteria::IN);
-            $objs = CcStreamSettingPeer::doSelect($criteria, $con);
-        }
-
-        return $objs;
-    }
-
-} // BaseCcStreamSettingPeer
-
-// This is the static code needed to register the TableMap for this table with the main Propel class.
-//
-BaseCcStreamSettingPeer::buildTableMap();
diff --git a/legacy/application/models/airtime/om/BaseCcStreamSettingQuery.php b/legacy/application/models/airtime/om/BaseCcStreamSettingQuery.php
deleted file mode 100644
index ee5b92f33..000000000
--- a/legacy/application/models/airtime/om/BaseCcStreamSettingQuery.php
+++ /dev/null
@@ -1,329 +0,0 @@
-<?php
-
-
-/**
- * Base class that represents a query for the 'cc_stream_setting' table.
- *
- *
- *
- * @method CcStreamSettingQuery orderByDbKeyName($order = Criteria::ASC) Order by the keyname column
- * @method CcStreamSettingQuery orderByDbValue($order = Criteria::ASC) Order by the value column
- * @method CcStreamSettingQuery orderByDbType($order = Criteria::ASC) Order by the type column
- *
- * @method CcStreamSettingQuery groupByDbKeyName() Group by the keyname column
- * @method CcStreamSettingQuery groupByDbValue() Group by the value column
- * @method CcStreamSettingQuery groupByDbType() Group by the type column
- *
- * @method CcStreamSettingQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
- * @method CcStreamSettingQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
- * @method CcStreamSettingQuery innerJoin($relation) Adds a INNER JOIN clause to the query
- *
- * @method CcStreamSetting findOne(PropelPDO $con = null) Return the first CcStreamSetting matching the query
- * @method CcStreamSetting findOneOrCreate(PropelPDO $con = null) Return the first CcStreamSetting matching the query, or a new CcStreamSetting object populated from the query conditions when no match is found
- *
- * @method CcStreamSetting findOneByDbValue(string $value) Return the first CcStreamSetting filtered by the value column
- * @method CcStreamSetting findOneByDbType(string $type) Return the first CcStreamSetting filtered by the type column
- *
- * @method array findByDbKeyName(string $keyname) Return CcStreamSetting objects filtered by the keyname column
- * @method array findByDbValue(string $value) Return CcStreamSetting objects filtered by the value column
- * @method array findByDbType(string $type) Return CcStreamSetting objects filtered by the type column
- *
- * @package    propel.generator.airtime.om
- */
-abstract class BaseCcStreamSettingQuery extends ModelCriteria
-{
-    /**
-     * Initializes internal state of BaseCcStreamSettingQuery object.
-     *
-     * @param     string $dbName The dabase name
-     * @param     string $modelName The phpName of a model, e.g. 'Book'
-     * @param     string $modelAlias The alias for the model in this query, e.g. 'b'
-     */
-    public function __construct($dbName = null, $modelName = null, $modelAlias = null)
-    {
-        if (null === $dbName) {
-            $dbName = 'airtime';
-        }
-        if (null === $modelName) {
-            $modelName = 'CcStreamSetting';
-        }
-        parent::__construct($dbName, $modelName, $modelAlias);
-    }
-
-    /**
-     * Returns a new CcStreamSettingQuery object.
-     *
-     * @param     string $modelAlias The alias of a model in the query
-     * @param   CcStreamSettingQuery|Criteria $criteria Optional Criteria to build the query from
-     *
-     * @return CcStreamSettingQuery
-     */
-    public static function create($modelAlias = null, $criteria = null)
-    {
-        if ($criteria instanceof CcStreamSettingQuery) {
-            return $criteria;
-        }
-        $query = new CcStreamSettingQuery(null, null, $modelAlias);
-
-        if ($criteria instanceof Criteria) {
-            $query->mergeWith($criteria);
-        }
-
-        return $query;
-    }
-
-    /**
-     * Find object by primary key.
-     * Propel uses the instance pool to skip the database if the object exists.
-     * Go fast if the query is untouched.
-     *
-     * <code>
-     * $obj  = $c->findPk(12, $con);
-     * </code>
-     *
-     * @param mixed $key Primary key to use for the query
-     * @param     PropelPDO $con an optional connection object
-     *
-     * @return   CcStreamSetting|CcStreamSetting[]|mixed the result, formatted by the current formatter
-     */
-    public function findPk($key, $con = null)
-    {
-        if ($key === null) {
-            return null;
-        }
-        if ((null !== ($obj = CcStreamSettingPeer::getInstanceFromPool((string) $key))) && !$this->formatter) {
-            // the object is already in the instance pool
-            return $obj;
-        }
-        if ($con === null) {
-            $con = Propel::getConnection(CcStreamSettingPeer::DATABASE_NAME, Propel::CONNECTION_READ);
-        }
-        $this->basePreSelect($con);
-        if ($this->formatter || $this->modelAlias || $this->with || $this->select
-         || $this->selectColumns || $this->asColumns || $this->selectModifiers
-         || $this->map || $this->having || $this->joins) {
-            return $this->findPkComplex($key, $con);
-        } else {
-            return $this->findPkSimple($key, $con);
-        }
-    }
-
-    /**
-     * Alias of findPk to use instance pooling
-     *
-     * @param     mixed $key Primary key to use for the query
-     * @param     PropelPDO $con A connection object
-     *
-     * @return                 CcStreamSetting A model object, or null if the key is not found
-     * @throws PropelException
-     */
-     public function findOneByDbKeyName($key, $con = null)
-     {
-        return $this->findPk($key, $con);
-     }
-
-    /**
-     * Find object by primary key using raw SQL to go fast.
-     * Bypass doSelect() and the object formatter by using generated code.
-     *
-     * @param     mixed $key Primary key to use for the query
-     * @param     PropelPDO $con A connection object
-     *
-     * @return                 CcStreamSetting A model object, or null if the key is not found
-     * @throws PropelException
-     */
-    protected function findPkSimple($key, $con)
-    {
-        $sql = 'SELECT "keyname", "value", "type" FROM "cc_stream_setting" WHERE "keyname" = :p0';
-        try {
-            $stmt = $con->prepare($sql);
-            $stmt->bindValue(':p0', $key, PDO::PARAM_STR);
-            $stmt->execute();
-        } catch (Exception $e) {
-            Propel::log($e->getMessage(), Propel::LOG_ERR);
-            throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), $e);
-        }
-        $obj = null;
-        if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
-            $obj = new CcStreamSetting();
-            $obj->hydrate($row);
-            CcStreamSettingPeer::addInstanceToPool($obj, (string) $key);
-        }
-        $stmt->closeCursor();
-
-        return $obj;
-    }
-
-    /**
-     * Find object by primary key.
-     *
-     * @param     mixed $key Primary key to use for the query
-     * @param     PropelPDO $con A connection object
-     *
-     * @return CcStreamSetting|CcStreamSetting[]|mixed the result, formatted by the current formatter
-     */
-    protected function findPkComplex($key, $con)
-    {
-        // As the query uses a PK condition, no limit(1) is necessary.
-        $criteria = $this->isKeepQuery() ? clone $this : $this;
-        $stmt = $criteria
-            ->filterByPrimaryKey($key)
-            ->doSelect($con);
-
-        return $criteria->getFormatter()->init($criteria)->formatOne($stmt);
-    }
-
-    /**
-     * Find objects by primary key
-     * <code>
-     * $objs = $c->findPks(array(12, 56, 832), $con);
-     * </code>
-     * @param     array $keys Primary keys to use for the query
-     * @param     PropelPDO $con an optional connection object
-     *
-     * @return PropelObjectCollection|CcStreamSetting[]|mixed the list of results, formatted by the current formatter
-     */
-    public function findPks($keys, $con = null)
-    {
-        if ($con === null) {
-            $con = Propel::getConnection($this->getDbName(), Propel::CONNECTION_READ);
-        }
-        $this->basePreSelect($con);
-        $criteria = $this->isKeepQuery() ? clone $this : $this;
-        $stmt = $criteria
-            ->filterByPrimaryKeys($keys)
-            ->doSelect($con);
-
-        return $criteria->getFormatter()->init($criteria)->format($stmt);
-    }
-
-    /**
-     * Filter the query by primary key
-     *
-     * @param     mixed $key Primary key to use for the query
-     *
-     * @return CcStreamSettingQuery The current query, for fluid interface
-     */
-    public function filterByPrimaryKey($key)
-    {
-
-        return $this->addUsingAlias(CcStreamSettingPeer::KEYNAME, $key, Criteria::EQUAL);
-    }
-
-    /**
-     * Filter the query by a list of primary keys
-     *
-     * @param     array $keys The list of primary key to use for the query
-     *
-     * @return CcStreamSettingQuery The current query, for fluid interface
-     */
-    public function filterByPrimaryKeys($keys)
-    {
-
-        return $this->addUsingAlias(CcStreamSettingPeer::KEYNAME, $keys, Criteria::IN);
-    }
-
-    /**
-     * Filter the query on the keyname column
-     *
-     * Example usage:
-     * <code>
-     * $query->filterByDbKeyName('fooValue');   // WHERE keyname = 'fooValue'
-     * $query->filterByDbKeyName('%fooValue%'); // WHERE keyname LIKE '%fooValue%'
-     * </code>
-     *
-     * @param     string $dbKeyName The value to use as filter.
-     *              Accepts wildcards (* and % trigger a LIKE)
-     * @param     string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
-     *
-     * @return CcStreamSettingQuery The current query, for fluid interface
-     */
-    public function filterByDbKeyName($dbKeyName = null, $comparison = null)
-    {
-        if (null === $comparison) {
-            if (is_array($dbKeyName)) {
-                $comparison = Criteria::IN;
-            } elseif (preg_match('/[\%\*]/', $dbKeyName)) {
-                $dbKeyName = str_replace('*', '%', $dbKeyName);
-                $comparison = Criteria::LIKE;
-            }
-        }
-
-        return $this->addUsingAlias(CcStreamSettingPeer::KEYNAME, $dbKeyName, $comparison);
-    }
-
-    /**
-     * Filter the query on the value column
-     *
-     * Example usage:
-     * <code>
-     * $query->filterByDbValue('fooValue');   // WHERE value = 'fooValue'
-     * $query->filterByDbValue('%fooValue%'); // WHERE value LIKE '%fooValue%'
-     * </code>
-     *
-     * @param     string $dbValue The value to use as filter.
-     *              Accepts wildcards (* and % trigger a LIKE)
-     * @param     string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
-     *
-     * @return CcStreamSettingQuery The current query, for fluid interface
-     */
-    public function filterByDbValue($dbValue = null, $comparison = null)
-    {
-        if (null === $comparison) {
-            if (is_array($dbValue)) {
-                $comparison = Criteria::IN;
-            } elseif (preg_match('/[\%\*]/', $dbValue)) {
-                $dbValue = str_replace('*', '%', $dbValue);
-                $comparison = Criteria::LIKE;
-            }
-        }
-
-        return $this->addUsingAlias(CcStreamSettingPeer::VALUE, $dbValue, $comparison);
-    }
-
-    /**
-     * Filter the query on the type column
-     *
-     * Example usage:
-     * <code>
-     * $query->filterByDbType('fooValue');   // WHERE type = 'fooValue'
-     * $query->filterByDbType('%fooValue%'); // WHERE type LIKE '%fooValue%'
-     * </code>
-     *
-     * @param     string $dbType The value to use as filter.
-     *              Accepts wildcards (* and % trigger a LIKE)
-     * @param     string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
-     *
-     * @return CcStreamSettingQuery The current query, for fluid interface
-     */
-    public function filterByDbType($dbType = null, $comparison = null)
-    {
-        if (null === $comparison) {
-            if (is_array($dbType)) {
-                $comparison = Criteria::IN;
-            } elseif (preg_match('/[\%\*]/', $dbType)) {
-                $dbType = str_replace('*', '%', $dbType);
-                $comparison = Criteria::LIKE;
-            }
-        }
-
-        return $this->addUsingAlias(CcStreamSettingPeer::TYPE, $dbType, $comparison);
-    }
-
-    /**
-     * Exclude object from result
-     *
-     * @param   CcStreamSetting $ccStreamSetting Object to remove from the list of results
-     *
-     * @return CcStreamSettingQuery The current query, for fluid interface
-     */
-    public function prune($ccStreamSetting = null)
-    {
-        if ($ccStreamSetting) {
-            $this->addUsingAlias(CcStreamSettingPeer::KEYNAME, $ccStreamSetting->getDbKeyName(), Criteria::NOT_EQUAL);
-        }
-
-        return $this;
-    }
-
-}
diff --git a/legacy/build/schema.xml b/legacy/build/schema.xml
index cc0b44d04..540aed0e2 100644
--- a/legacy/build/schema.xml
+++ b/legacy/build/schema.xml
@@ -375,11 +375,6 @@
       <reference local="user_id" foreign="id" />
     </foreign-key>
   </table>
-  <table name="cc_stream_setting" phpName="CcStreamSetting">
-    <column name="keyname" phpName="DbKeyName" primaryKey="true" type="VARCHAR" size="64" required="true" />
-    <column name="value" phpName="DbValue" type="VARCHAR" size="255" required="false" />
-    <column name="type" phpName="DbType" type="VARCHAR" size="16" required="true" />
-  </table>
   <table name="cc_login_attempts" phpName="CcLoginAttempts">
     <column name="ip" phpName="DbIP" primaryKey="true" type="VARCHAR" size="32" required="true" />
     <column name="attempts" phpName="DbAttempts" type="INTEGER" required="false" defaultValue="0" />