<?php
include_once(_DIR_EXT.'/HTML/c_page_TXT.php');

class c_services_events_media_reg_event extends c_page_TXT
{
    function show()
    {   //$_POST['event']='media-content-hidden' ;
        //$_POST['payload']['media_id']=2 ;
        //$_POST['payload']['pass_id']=3 ;
        $reg_log=0 ;
        ob_start();

        //echo '<strong>$_POST:</strong><br>' ; damp_array($_POST,1,-1) ;

        $pass_id=(isset($_POST['payload']['pass_id']))? $_POST['payload']['pass_id']:0;
        $media_id=(isset($_POST['payload']['media_id']))? $_POST['payload']['media_id']:0;
        $content_view_id=(isset($_POST['payload']['content_view_id']))? $_POST['payload']['content_view_id']:0;
        $event_name=(isset($_POST['event']))? $_POST['event']:'';
        // если все передано корректно, регистрируем показ контента
        echo 'event_name='.$event_name.'<br>';
        echo 'pass_id='.$pass_id.'<br>';
        echo 'media_id='.$media_id.'<br>';
        if($event_name and $media_id and $pass_id)
        {
            $rec_event_pass=execSQL_van('select * from obj_site_events_pass where pkey='.$pass_id);
            $arr=array();
            $arr[]=$rec_event_pass;
            //echo '<strong>obj_site_events_pass:</strong><br>' ; print_2x_arr($arr) ;
            if($rec_event_pass['pkey'])
            {
                $event_id=$rec_event_pass['event_id'];
                $personal_id=$rec_event_pass['personal_id'];
                echo 'event_id='.$event_id.'<br>';
                echo 'personal_id='.$personal_id.'<br>';

                if(!$content_view_id) $rec_media_content_view_prev=execSQL_van('select * from media_content_view where event_id='.$event_id.' and personal_id='.$personal_id.' and content_id='.$media_id);
                else                   $rec_media_content_view_prev=execSQL_van('select * from media_content_view where pkey='.$content_view_id);

                $rec_media=execSQL_van('select * from media_content where pkey='.$media_id);
                $arr=array();
                $arr[]=$rec_media_content_view_prev;
                echo '<strong>media_content_view prev:</strong><br>';
                print_2x_arr($arr);
                $media_content_view_prev_id=($rec_media_content_view_prev['pkey'])? $rec_media_content_view_prev['pkey']:0;
                $data=array('event_id'=>$event_id,'personal_id'=>$personal_id,'content_id'=>$media_id,);

                switch($event_name)
                {
                    case 'media-content-shown':
                        $data['c_data']=time();
                        if($media_content_view_prev_id)
                        {
                            echo '<strong>Обновляем запись в таблице media_content_view</strong>: '.print_r($data,true).'<br>';
                            update_rec_in_table('media_content_view',$data,'pkey='.$media_content_view_prev_id);
                        }
                        else
                        {
                            echo '<strong>Добавляем запись в таблицу media_content_view</strong>: '.print_r($data,true).'<br>';
                            adding_rec_to_table_fast('media_content_view',$data);
                        }
                        $reg_log=1 ;
                        break;

                    case 'media-content-done':
                    case 'media-content-hidden':
                        $reg_log=1 ;
                        $data['c_data']=time();
                        $data['status']=3;
                        if($media_content_view_prev_id)
                        {
                            $data['length']=$rec_media['len'] ; // событие прилетает по таймеру, нет необходимости вычисять время time()-$rec_media_content_view_prev['c_data'];
                            echo '<strong>Обновляем запись в таблице media_content_view</strong>: '.print_r($data,true).'<br>';
                            update_rec_in_table('media_content_view',$data,'pkey='.$media_content_view_prev_id);
                        }
                        else
                        {
                            echo '<strong>Добавляем запись в таблицу media_content_view</strong>: '.print_r($data,true).'<br>';
                            adding_rec_to_table_fast('media_content_view',$data);
                        }

                        // необходимо выяснить сколько контента уже показано, а сколько еще надо показать

                        $rec_media_content_view_prev=execSQL_line('select content_id from media_content_view where event_id='.$event_id.' and personal_id='.$personal_id.' and status=3');
                        echo 'Список контента, который уже был просмотрен: ';
                        echo (_sizeof($rec_media_content_view_prev))? implode(', ',$rec_media_content_view_prev):'-';
                        echo '<br>';

                        $rec_event=EVENTS()->get_event_by_id($event_id);

                        $event_pass_status=2; // медиаконтент доведен частично
                        // если для прохождения мероприятия надо посмотреть только один ролик - и один ролик просмотрен - статус=3
                        echo 'Проверяем объем доведения контента<br>';
                        if($rec_event['_ext_info']['full_content_mode']==1)
                        {
                            echo 'Для прохождения мепроприятия необходимо просмотреть один контент из списка<br>';
                            if(_sizeof($rec_media_content_view_prev))
                            {
                                echo 'Условие выполнено, мероприятие пройдено<br>';
                                $event_pass_status=3;
                            }
                            else echo 'Условие не выполнено<br>';
                        }
                        // если для прохождения мероприятия надо посмотреть все ролики - смотрим сколько роликов всего в мероприятии
                        else if($rec_event['_ext_info']['full_content_mode']==2)
                        {
                            echo 'Для прохождения мепроприятия необходимо просмотреть весь контент мероприятия<br>';
                            $_usl=array();
                            $_usl[]='event_id='.$rec_event['pkey'];
                            if(_sizeof($rec_media_content_view_prev)) $_usl[]='not pkey in ('.implode(',',$rec_media_content_view_prev).')';
                            $usl=implode(' and ',$_usl);

                            $cnt_content=execSQL_value('select count(pkey) from media_content where '.$usl);
                            echo 'Число контентов, которые еще не были просмотрены: <strong>'.$cnt_content.'</strong><br>';
                            $event_pass_status=($cnt_content)? 2:3;
                        }
                        else if($rec_event['_ext_info']['full_content_mode']==3)
                        {
                            echo 'Для прохождения мепроприятия необходимо просмотреть контент мероприятия весь срок действия мероприятия<br>';
                        }

                        echo '<strong>Обновляем event_pass => '.$event_pass_status.'</strong><br>';
                        EVENTS()->set_event_personal_data($event_id,$personal_id,array('status'=>$event_pass_status),'Доведен медиа-контент "'.$rec_media['obj_name'].'"',array('ignore_not_change_status'=>1));
                        break;
                }

                $rec_media_content_view_after=execSQL_van('select * from media_content_view where event_id='.$event_id.' and personal_id='.$personal_id.' and content_id='.$media_id);
                $arr=array();
                $arr[]=$rec_media_content_view_after;
                echo '<strong>media_content_view after:</strong><br>';
                print_2x_arr($arr);
                $rec_pass_after=execSQL_van('select * from obj_site_events_pass where event_id='.$event_id.' and personal_id='.$personal_id);
                $arr=array();
                $arr[]=$rec_pass_after;
                echo '<strong>rec_event_pass after:</strong><br>';
                print_2x_arr($arr);
            }
            else echo 'Не найдено записи в таблице obj_site_events_pass<br>';
        }
        else echo 'Не передано одно из значений (event_name, media_id, pass_id) <br>';

        $text=ob_get_clean();
        echo $text;
        LOGS()->reg_log('c_services_events_media_reg_event',$event_name,array('data'=>$_POST,'save_to_file'=>$text,
		    'personal_id'=>$personal_id,
		    'reffers'=>[$rec_event_pass['_reffer']]

)) ;
        LOG_JSON('event_pass')->reg('reg_event',$text);
        LOG_JSON('event_pass')->flush('event_pass_'.$pass_id);
        //LOGS()->reg_log('c_services_events_media_reg_event2','testtest') ;
        //LOGS()->reg_log('c_services_events_media_reg_event3',$text) ;
    }
}
