<?php

class PhoneParameters extends PhonalisaRecord
{

    public $id;
    public $name;
    public $meta;
    public $value;
    public $descr;
    public $phoneModel;
    public $profileID;

    public static function myAttributes()
    {
        return array(
            'name' => 'name',
            'meta' => 'meta',
            'value' => 'value',
            'descr' => 'descr',
            'phoneModel' => 'phoneModel',
            'profileID' => 'profileID',
        );
    }

    /**
     * Returns the static model of the specified AR class.
     * @param string $className active record class name.
     * @return Calendar the static model class
     */
    public static function model($className = __CLASS__)
    {
        return parent::model($className);
    }

    /**
     * @return string the associated database table name
     */
    public function tableName()
    {
        return strtolower('PhoneParameters');
    }

    /**
     * @return array validation rules for model attributes.
     */
    public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('name', 'required'),
            array('id, meta ,value, phoneModel, profileID, descr ', 'safe'),
            array(
                'name',
                'match',
                'not' => true,
                'pattern' => '/[<>]/',
                'message' => __('PROVISIONING_PARAMETERS_SHOULD_NOT_CONTAINS_GREATER_LESS_THAN_ERROR_MESSAGE'
                )
            ),
        );
    }

    /**
     * @return array relational rules.
     */
    public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array();
    }

    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels()
    {
        return array(
            'name' => __('PHONE_PARAMETERS_MODEL_NAME'),
            'meta' => __('PHONE_PARAMETERS_MODEL_META'),
            'value' => __('PHONE_PARAMETERS_MODEL_VALUE'),
            'descr' => __('PHONE_PARAMETERS_MODEL_DESCR'),
            'phoneModel' => __('PHONE_PARAMETERS_MODEL_PHONE_MODEL'),
            'profileID' => __('PHONE_PARAMETERS_MODEL_PROFILE_ID'),
        );
    }

    /**
     * Retrieves a list of models based on the current search/filter conditions.
     * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
     */
    public function search($profileID, $phoneModel, $order = 'id')
    {
        $models = $this->find(array('profileID' => $profileID, 'phoneModel' => $phoneModel), 'name');
        $models[] = $this;
        return new CArrayDataProvider($models, array('pagination' => false));
    }
}
