<?php
class Blacklist extends PhonalisaRecord {

    public  $id;
    public  $name;
    
    
    public static function myAttributes() {
    
        return array(
               // 'id'=>'id',
                'name'=>'name',
        );
    }
    
    /**
     * 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('Blacklist');
    }
    
    /**
     * @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'),
        );
    }
    
    /**
     * @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(
            'id' => __('ID'),
            'name'=>__('BLACKLIST_MODEL_NAME'),
        );
    }
    
    /**
     * 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);
        
        $filter['pagination'] = array(
            'pageSize'=> getGridPageSize('blacklist-grid'),
        );
        
        if ($filter != null) {
            
            
            $dataprovider = new CPhonalisaDataProvider($this, array(
                    'criteria'=>$criteria,
            ));
            
            $routingBlacklistMax = PhonalisaLicenseManager::routingBlacklistMax();
            if ($routingBlacklistMax >=0) {
                $dataprovider->pagination->pageSize = $dataprovider->pagination->pageSize > $routingBlacklistMax ? $routingBlacklistMax : $dataprovider->pagination->pageSize;
                $dataprovider->totalItemCount = $dataprovider->totalItemCount > $routingBlacklistMax ? $routingBlacklistMax : $dataprovider->totalItemCount;
            }
            
            return $dataprovider;
        }
    }

    public function afterDelete(){
        do {
            $oldParams = BlacklistPattern::model()->findAllByAttributes(array('blacklistId'=>$this->id));
            foreach ($oldParams as $oldParam) {
                $oldParam->delete();
            }    
        } while (BlacklistPattern::model()->countByAttributes(array('blacklistId'=>$this->id)));
        
        return parent::afterDelete();
    }
}