-- call init
CREATE TABLE IF NOT EXISTS user_alias_$mid
(   
	login_id int(11) NOT NULL default '0',
	login_alias  char(128) NOT NULL default '',
	KEY alias_not_u (login_alias),
	KEY login_id ( login_id ) 
);			

CREATE TABLE IF NOT EXISTS nas_$mid
(	 
	id int(11) NOT NULL auto_increment,
	identifier varchar(32) NOT NULL default '',
	secret varchar(16) NOT NULL default '',
	ipaddr int(10) unsigned NOT NULL default '0',
	type tinyint(4) NOT NULL default '0',
	date1 date default NULL,
	date2 date default NULL,
	comment varchar(255) NOT NULL default '',
	config_id int(11) NOT NULL default '0', 
    vendor int(11) NOT NULL default '0', 
    script text not null, 
	PRIMARY KEY  (id) 
);

CREATE TABLE IF NOT EXISTS nas_config_$mid
( 
	id int(11) NOT NULL auto_increment,
    nas_id int(11) NOT NULL default '0',
    dt datetime NOT NULL default '0000-00-00 00:00:00',
    title varchar(150) NOT NULL default '',
    uid int(11) NOT NULL default '0',
    config text NOT NULL,
    PRIMARY KEY  (id) 
);

CREATE TABLE IF NOT EXISTS radius_pair_$mid
( 
	id int(11) NOT NULL default '0',
	pair_name char(50) NOT NULL default '', 
	pair_value char(255) NOT NULL default '', 
	pair_realm char(15) NOT NULL default '', 
	KEY id (id) 
);
        
CREATE TABLE radius_pair_set_$mid
( 
	id int(11) NOT NULL default '0', 
    set_id int(11) NOT NULL default '0',
    realm char(15) NOT NULL default '', 
    KEY id (id) 
);
     
CREATE TABLE IF NOT EXISTS user_login_limit_$mid
( 
	id int(10) unsigned NOT NULL auto_increment, 
    num int(11) unsigned default '0', 
    lid int(10) unsigned NOT NULL default '0', 
    sid int(10) unsigned NOT NULL default '0', 
    param1 varchar(255) NOT NULL, 
    param2 varchar(255) NOT NULL, 
    date1 date default NULL, 
    date2 date default NULL, 
    comment varchar(255) NOT NULL default '', 
    type_con int(1) unsigned NOT NULL default '0', 
    PRIMARY KEY  (id), 
	KEY lid ( lid ) 
);

CREATE TABLE IF NOT EXISTS user_login_condition_$mid
( 
	llid int(11) NOT NULL default '0', 
    hh int(11) NOT NULL default '0', 
    dw int(11) NOT NULL default '0', 
    dm int(11) NOT NULL default '0', 
    mm int(11) NOT NULL default '0', 
	KEY llid ( llid ) 
);
        
CREATE TABLE IF NOT EXISTS login_parameter_$mid
(
	value varchar(255) NOT NULL,
	name varchar(255) NOT NULL,
	lid int(11) NOT NULL,
    KEY lid (lid) 
);
-- end of call init

CREATE TABLE IF NOT EXISTS user_login_$mid
( 
	id int(11) NOT NULL auto_increment,
	cid int(11) NOT NULL default 0,
	object_id int NOT NULL default 0, 
	login int(11) NOT NULL default 0,
	pswd char(32) NOT NULL default '',
	date1 date default NULL,
	date2 date default NULL,
	status tinyint(4) NOT NULL default 0,
	session smallint(6) NOT NULL default 0,
	rp_mode TINYINT NOT NULL default 0,
	realm_group varchar(20) NOT NULL default '',
	comment char(255) NOT NULL default '',
	PRIMARY KEY  (id),
	KEY login_not_u ( login ),
	KEY cid ( cid ),
	KEY object_id ( object_id ),
	KEY date1 ( date1 ),
	KEY date2 ( date2 )
);

CREATE TABLE calculate_period_$mid 
( 
	id int(11) NOT NULL auto_increment, 
	cid int(11) NOT NULL default 0,
	start date default NULL,
	end date default NULL,
	PRIMARY KEY  (id),
	KEY cid (cid) 
);

CREATE TABLE IF NOT EXISTS radius_pair_ip_$mid
( 
	id int(11) NOT NULL DEFAULT 0,
	realm char(15) NOT NULL DEFAULT '',
	ip bigint(20) NOT NULL DEFAULT 0,
	date1 DATE,
	date2 DATE,
	KEY id (id) 
);

CREATE TABLE calculate_period_$mid (
  id int(11) NOT NULL auto_increment,
  cid int(11) NOT NULL default '0',
  start date default NULL,
  end date default NULL,
  PRIMARY KEY  (id),
  KEY cid (cid)
);

ALTER TABLE nas_$mid ADD script TEXT NOT NULL;

ALTER TABLE user_login_limit_$mid CHANGE param1 param1 VARCHAR(250) NOT NULL DEFAULT '';
ALTER TABLE user_login_limit_$mid CHANGE param2 param2 VARCHAR(250) NOT NULL DEFAULT '';

ALTER TABLE user_login_$mid ADD object_id INT NOT NULL DEFAULT '0';
ALTER TABLE user_login_$mid ADD KEY object_id(object_id);

CREATE TABLE radius_pair_set_$mid ( 
  id int(11) NOT NULL default '0', 
  set_id int(11) NOT NULL default '0',
  realm char(15) NOT NULL default '',
  KEY id (id) );

CREATE TABLE radius_pair_ip_$mid ( 
id int(11) NOT NULL default '0', 
realm char(15) NOT NULL default '', 
ip BIGINT NOT NULL default '0',
KEY id (id) );


ALTER TABLE user_alias_$mid ADD KEY login_id(login_id);
ALTER TABLE user_login_$mid ADD UNIQUE KEY login(login);

ALTER TABLE radius_pair_ip_$mid ADD date1 DATE;
ALTER TABLE radius_pair_ip_$mid ADD date2 DATE;


CREATE TABLE login_parameter_$mid (
	value varchar(255) NOT NULL,
    name varchar(255) NOT NULL,
    lid int(11) NOT NULL,
    KEY lid (lid)
     );


CREATE TABLE login_parameter_log_$mid ( 
    id   	int(11) NOT NULL,
    name 	varchar(255) NOT NULL,
    lid  	int(11) NOT NULL,
    value	varchar(255) NOT NULL,
    dt   	datetime NOT NULL,
    user 	int(11) NOT NULL,
    KEY id (id),
    KEY lid (lid) 
    ); 
 
ALTER TABLE user_login_$mid DROP KEY login;
ALTER TABLE user_alias_$mid DROP KEY login_alias;
ALTER TABLE user_login_$mid ADD KEY login_not_u(login);

ALTER TABLE user_alias_$mid DROP KEY alias;
ALTER TABLE user_alias_$mid ADD KEY alias_not_u (login_alias);

ALTER TABLE nas_$mid ADD common_config_id VARCHAR(255) NOT NULL;

DELETE FROM radius_pair_set_$mid WHERE id = 0;
DELETE FROM radius_pair_$mid WHERE id = 0;

UPDATE `event_script_link` SET `event_key`=REPLACE(`event_key`, 'ru.bitel.bgbilling.modules.dialup.server.wifi.event.WiFiGetLoginsOnEmailEvent', 'ru.bitel.bgbilling.modules.dialup.server.event.wifi.WiFiGetLoginsOnEmailEvent');

-- #BLOCK#
DELETE FROM script_event_type WHERE mid=$mid;

SET @mid=$mid, @old_event_id=1, @new_event_id='ru.bitel.bgbilling.modules.dialup.server.event.OpenPeriodRequestEvent', @event_title='Запрос учетного периода';
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES (@mid, @new_event_id, 1, @event_title);
INSERT INTO script_function_event_type(fid, mid, event_id) SELECT sfet1.fid, sfet1.mid, @new_event_id FROM script_function_event_type AS sfet1 LEFT JOIN script_function_event_type AS sfet2 ON sfet1.fid=sfet2.fid AND sfet1.mid=sfet2.mid AND sfet2.event_id=@new_event_id WHERE sfet1.mid=@mid AND sfet1.event_id=@old_event_id AND sfet2.fid IS NULL;

SET @mid=$mid, @old_event_id=2, @new_event_id='ru.bitel.bgbilling.modules.dialup.server.event.DisconnectByBalanceOverEvent', @event_title='Отключение по балансу';
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES (@mid, @new_event_id, 1, @event_title);
INSERT INTO script_function_event_type(fid, mid, event_id) SELECT sfet1.fid, sfet1.mid, @new_event_id FROM script_function_event_type AS sfet1 LEFT JOIN script_function_event_type AS sfet2 ON sfet1.fid=sfet2.fid AND sfet1.mid=sfet2.mid AND sfet2.event_id=@new_event_id WHERE sfet1.mid=@mid AND sfet1.event_id=@old_event_id AND sfet2.fid IS NULL;

SET @mid=$mid, @old_event_id=100, @new_event_id='ru.bitel.bgbilling.modules.call.server.event.BeforeLoginDeleteEvent', @event_title='Перед удалением логина';
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES (@mid, @new_event_id, 1, @event_title);
INSERT INTO script_function_event_type(fid, mid, event_id) SELECT sfet1.fid, sfet1.mid, @new_event_id FROM script_function_event_type AS sfet1 LEFT JOIN script_function_event_type AS sfet2 ON sfet1.fid=sfet2.fid AND sfet1.mid=sfet2.mid AND sfet2.event_id=@new_event_id WHERE sfet1.mid=@mid AND sfet1.event_id=@old_event_id AND sfet2.fid IS NULL;

SET @mid=$mid, @old_event_id=101, @new_event_id='ru.bitel.bgbilling.modules.call.server.event.LoginUpdateEvent', @event_title='Изменение/добавление логина ';
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES (@mid, @new_event_id, 1, @event_title);
INSERT INTO script_function_event_type(fid, mid, event_id) SELECT sfet1.fid, sfet1.mid, @new_event_id FROM script_function_event_type AS sfet1 LEFT JOIN script_function_event_type AS sfet2 ON sfet1.fid=sfet2.fid AND sfet1.mid=sfet2.mid AND sfet2.event_id=@new_event_id WHERE sfet1.mid=@mid AND sfet1.event_id=@old_event_id AND sfet2.fid IS NULL;

SET @mid=$mid, @old_event_id=120, @new_event_id='ru.bitel.bgbilling.modules.dialup.server.event.radius.RadiusAuthenticationEvent', @event_title='RADIUS-аутентификация';
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES (@mid, @new_event_id, 1, @event_title);
INSERT INTO script_function_event_type(fid, mid, event_id) SELECT sfet1.fid, sfet1.mid, @new_event_id FROM script_function_event_type AS sfet1 LEFT JOIN script_function_event_type AS sfet2 ON sfet1.fid=sfet2.fid AND sfet1.mid=sfet2.mid AND sfet2.event_id=@new_event_id WHERE sfet1.mid=@mid AND sfet1.event_id=@old_event_id AND sfet2.fid IS NULL;


INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ($mid, 'ru.bitel.bgbilling.modules.dialup.server.event.radius.SessionStoppedEvent', 1, 'Сессия завершена');
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ($mid, 'ru.bitel.bgbilling.modules.dialup.server.event.radius.TariffZoneChangedEvent', 1, 'Тарифная зона изменилась');
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ($mid, 'ru.bitel.bgbilling.modules.dialup.server.event.wifi.WiFiGetLoginsOnEmailEvent', 0, 'Получение логинов/паролей WiFi');

-- #ENDB#
