<?php
/**
  * Ahead WebSoft Technologies Pvt Ltd.
  * @copyright  Copyright 2006-2026 Ahead WebSoft Technologies Pvt Ltd.
  * @license    https://www.socialengine.com/policies
*/

class Install_Import_Version3_EventMembership extends Install_Import_Version3_Abstract
{
  protected $_fromTable = 'se_eventmembers';

  protected $_toTable = 'engine4_event_membership';

  protected function  _translateRow(array $data, $key = null)
  {
    // v3 codes:
    //  -1 -> Awaiting Approval
    //  0  -> Awaiting Response
    //  1  -> Attending
    //  2  -> Maybe Attending
    //  3  -> Not Attending
    //  4  -> I'll be late

    // v4 codes:
    //  0  -> Not attending
    //  1  -> Maybe Attending
    //  2  -> Attending
    //  3  -> Awaiting Response

    // Fix for previously imported events:
    // Note: change the 0 in "resource_id <= 0" to the last event created before migration
    //  UPDATE engine4_event_membership SET rsvp = 10 WHERE rsvp = 3 && resource_id <= 0;
    //  UPDATE engine4_event_membership SET rsvp = 11 WHERE rsvp = 2 && resource_id <= 0;
    //  UPDATE engine4_event_membership SET rsvp = 12 WHERE rsvp = 1 && resource_id <= 0;
    //  UPDATE engine4_event_membership SET rsvp = 13 WHERE rsvp <= 0 && resource_id <= 0;
    //  UPDATE engine4_event_membership SET rsvp = 11 WHERE rsvp < 10 && resource_id <= 0;
    //  UPDATE engine4_event_membership SET rsvp = rsvp - 10 WHERE rsvp >= 10 && resource_id <= 0;
    
    $newData = array();

    $newData['resource_id'] = $data['eventmember_event_id'];
    $newData['user_id'] = $data['eventmember_user_id'];
    $newData['active'] = $data['eventmember_status'] && $data['eventmember_approved'];
    $newData['resource_approved'] = $data['eventmember_approved'];
    $newData['user_approved'] = $data['eventmember_status'];
    $newData['title'] = $data['eventmember_title'];

    //$newData['rsvp'] = $data['eventmember_rsvp'];
    switch( @$data['eventmember_rsvp'] ) {
      case -1: case 0:
        $newData['rsvp'] = 3;
        break;
      case 1:
        $newData['rsvp'] = 2;
        break;
      case 2: case 4: default:
        $newData['rsvp'] = 1;
        break;
      case 3:
        $newData['rsvp'] = 0;
        break;
    }


    return $newData;
  }
}

/*
CREATE TABLE IF NOT EXISTS `se_eventmembers` (
  `eventmember_id` int(10) unsigned NOT NULL auto_increment,
*  `eventmember_user_id` int(10) unsigned NOT NULL default '0',
*  `eventmember_event_id` int(10) unsigned NOT NULL default '0',
*  `eventmember_status` tinyint(3) unsigned NOT NULL default '0',
*  `eventmember_approved` tinyint(3) unsigned NOT NULL default '0',
  `eventmember_rank` tinyint(3) unsigned NOT NULL default '0',
*  `eventmember_title` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL default '',
*  `eventmember_rsvp` tinyint(3) unsigned NOT NULL default '0',
  PRIMARY KEY  (`eventmember_id`),
  KEY `INDEX` (`eventmember_user_id`,`eventmember_event_id`),
  KEY `STATUS` (`eventmember_status`,`eventmember_approved`,`eventmember_rsvp`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=1 ;
 *
 */

/*
CREATE TABLE IF NOT EXISTS `engine4_event_membership` (
*  `resource_id` int(11) unsigned NOT NULL,
*  `user_id` int(11) unsigned NOT NULL,
*  `active` tinyint(1) NOT NULL default '0',
*  `resource_approved` tinyint(1) NOT NULL default '0',
*  `user_approved` tinyint(1) NOT NULL default '0',
  `message` text NULL,
*  `rsvp` tinyint(3) NOT NULL default '1',
*  `title` text NULL,
  PRIMARY KEY  (`resource_id`, `user_id`),
  KEY `REVERSE` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci ;
 *
 */
