#!/usr/bin/perl

=encoding UTF-8
=cut

=head1 DESCRIPTION

=cut

# common modules
use feature 'say';
use Carp;

# project modules
use lib::abs qw(
    ../lib
);
use qbit;
use Application;

# global vars

# subs

# main
sub main {
    my $app = Application->new();
    $app->pre_run();

    $app->set_cur_user({id => 0});
    no strict 'refs';
    no warnings 'redefine';
    *{'QBit::Application::check_rights'} = sub {TRUE};

    foreach my $table (qw( context_on_site_direct_tag internal_context_on_site_direct_tag ) ) {
        my $data = $app->partner_db->$table->get_all();

        foreach my $el (@$data) {
            my $new_el = {hash_transform(
                $el,
                [qw(caption)],
                {
                    id => 'tag_id',
                    campaign_id => 'page_id',
                }
            )};
            $new_el->{public_id} = $new_el->{tag_id} . '_' . $new_el->{page_id};
            $new_el->{multistate} = 1;

            try {
                # используется add, а не add_multi, так как так проще было
                # сделать проверки. Там около 2500 элементов, скрипт одноразовый и отрабатывает за 5 секунд.
                $app->partner_db->block_tags->add($new_el);
            }
            catch Exception::DB::DuplicateEntry with {
            };
        }
    }

    $app->post_run();
}
main();
__END__
