/**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     DB::table('campaign_manage')->truncate();
     DB::table('campaign_manage_country')->truncate();
     DB::table('campaign_manage_date')->truncate();
     DB::table('campaign_manage_time')->truncate();
     $campaigns = json_decode(File::get('database/migrations/jsondata/campaigns.json'));
     $default_parameters = array();
     $default_parameters['countries'] = 10000;
     $default_parameters['dates'] = 1000;
     $default_parameters['hours'] = 100;
     foreach ($campaigns as $campaign) {
         $campaign = CampaignManage::create(array('id' => '', 'campaign_id' => $campaign->id, 'platform_id' => 1));
         $relationships = array_intersect_key($default_parameters, array_flip(CampaignManage::$relationshipsAllowedToUpdate));
         if (!empty($relationships)) {
             foreach ($relationships as $relationshipType => $relationshipValue) {
                 if (!empty($relationshipValue)) {
                     if (!is_array($relationshipValue)) {
                         $relationshipValue = explode(',', $relationshipValue);
                     }
                     $campaign->{$relationshipType}()->sync($relationshipValue);
                 }
             }
         }
     }
 }
 public function readCampaign($parameters)
 {
     try {
         $campaigns = CampaignManage::findBy('campaign_id', $parameters['campaigns']);
         $campaigns_details = array();
         foreach ($campaigns as $campaign) {
             $campaign_manage = $this->_getFactory()->newModelCampaignManage();
             $campaign_manage->setCampaignManageId($campaign->id);
             $campaign_manage->setPlatformId($campaign->platform_id);
             $campaign_manage->setCampaignId($campaign->campaign_id);
             $countries = CampaignManageCountry::findBy('campaign_manage_id', $campaign_manage->getCampaignManageId());
             $countries_collection = array();
             foreach ($countries as $country) {
                 $campaign_manage_country = $this->_getFactory()->newModelCampaignManageCountry();
                 $campaign_manage_country->setCountryId($country->country_id);
                 $campaign_manage_country->setCampaignManageId($country->campaign_manage_id);
                 $countries_collection[] = $campaign_manage_country;
             }
             $dates = CampaignManageDate::findBy('campaign_manage_id', $campaign_manage->getCampaignManageId());
             $dates_collection = array();
             foreach ($dates as $date) {
                 $campaign_manage_date = $this->_getFactory()->newModelCampaignManageDate();
                 $campaign_manage_date->setDateId($date->date_id);
                 $campaign_manage_date->setCampaignManageId($date->campaign_manage_id);
                 $dates_collection[] = $campaign_manage_date;
             }
             $times = CampaignManageTime::findBy('campaign_manage_id', $campaign_manage->getCampaignManageId());
             $times_collection = array();
             foreach ($times as $time) {
                 $campaign_manage_time = $this->_getFactory()->newModelCampaignManageTime();
                 $campaign_manage_time->setTimeId($time->time_id);
                 $campaign_manage_time->setCampaignManageId($time->campaign_manage_id);
                 $times_collection[] = $campaign_manage_time;
             }
             $campaigns_details[] = array('campaign_manage' => $campaign_manage, 'countries_collection' => $countries_collection, 'dates_collection' => $dates_collection, 'times_collection' => $times_collection);
         }
         return $campaigns_details;
     } catch (\Exception $e) {
         throw $e;
     }
 }