# approved by zhur
#
# Часть 1
# Запустить перед выкладкой
# Время создания таблиц 0.1 сек 
# база MONITOR

create table campaign_email_report_data (
    cid int unsigned not null default 0,
    ClientID int unsigned not null default 0,
    uid bigint unsigned not null default 0,

    servicing_type enum('none','manager','agency') not null default 'none',
    is_easy enum('No','Yes') default 'No',

    sum decimal(16,6) not null,
    sum_spent decimal(16,6) not null,
    sum_spent_30 decimal(16,6) not null,
    sum_left decimal(16,6) not null,

    create_time timestamp not null default '0000-00-00',
    first_pay_time timestamp not null default '0000-00-00',
    last_show_time timestamp not null default '0000-00-00',
    money_out_time timestamp not null default '2038-01-19',

    geo_id int unsigned not null default 0,

    PRIMARY KEY cid(cid),
    key uid(uid),
    key ClientID(ClientID),
    key geo_id(geo_id),
    key create_time(create_time),
    key first_pay_time(first_pay_time),
    key last_show_time(last_show_time),
    key money_out_time(money_out_time)
);

create table campaign_email_report_data_tmp like campaign_email_report_data;

create table user_email_report_data (
    uid bigint unsigned not null default 0,
    ClientID bigint unsigned not null default 0,
    is_easy enum('No','Yes') default 'No',

    camp_count smallint not null default 0,
    servicing_type_mask tinyint not NULL default 1,

    sum decimal(16,6) not null,
    sum_spent decimal(16,6) not null,
    sum_spent_30 decimal(16,6) not null,
    sum_left decimal(16,6) not null,

    create_time timestamp not null,
    first_pay_time timestamp not null,
    last_show_time timestamp not null,
    money_out_time timestamp not null,
    
    geo_id int unsigned not null default 0,

    PRIMARY KEY uid(uid),
    unique key ClientID(ClientID),
    key create_time(create_time),
    key first_pay_time(first_pay_time),
    key last_show_time(last_show_time),
    key money_out_time(money_out_time)
);

create table user_email_report_data_tmp like user_email_report_data;

# Часть 2
# Запускать: после выкладки
# время работы скрипта: от 20 мин до 60 мин.
# До окончания работы никаких ошибок в интерфейсе не должно появляться, 
# только списки email-адресов будут выгружаться пустыми. 
# Отслеживать прогресс выполнения скрипта можно по логу makeEmailReportTable.log.yyyymmdd ("total NN camps")
# всего должно быть обработано ок. 1100000 кампаний

perl protected/makeEmailReportTable.pl


