<?php

class SpeedDialList extends PhonalisaRecord
{

    public $id;
    public $name;
    public $descr;
    public $file;
    
    public static function myAttributes()
    {
        return array(
            'name' => 'name',
            'descr' => 'descr',
        );
    }

    /**
     * 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('SpeedDialList');
    }

    /**
     * @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, name, descr, file', 'safe')
                //FIXME 
        );
    }

    /**
     * @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' => __('SPEED_DIAL_MODEL_NAME'),
            'descr' => __('SPEED_DIAL_MODEL_DESCR'),
            'file' => __("SPEED_DIAL_MODEL_FILE")
        );
    }

    /**
     * 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($order = 'name')
    {
        // Warning: Please modify the following code to remove attributes that
        // should not be searched.

        $criteria = new CDbCriteria;
        $filter = $this->getFilter($criteria, $order);

        if ($filter != null) {
            $dataprovider = new CPhonalisaDataProvider($this, array(
                'criteria' => $criteria,
            ));
            return $dataprovider;
        }
    }

    public function afterDelete()
    {
        do {
            $phoneKeys = SpeedDial::model()->findAllByAttributes(array('profile_id' => $this->id));
            foreach ($phoneKeys as $phoneKey) {
                $phoneKey->delete();
            }
        } while (SpeedDial::model()->findAllByAttributes(array('profile_id' => $this->id)));
        
        $groups = Groups::model()->findAllByAttributes(array("speedDialList" => $this->id));
        foreach ($groups as $group) {
            $group->speedDialList = "";
            $group->save();
        }
        
        return parent::afterDelete();
    }
    
    public function getSpeedDials()
    {
        $models = SpeedDial::model()->findAllByAttributes(array("profile_id" => $this->id));
        return $models;
    }
}
