From 83e94b3ecfffd2821e229e5608fb73b4b92eacb9 Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Fri, 24 Jul 2015 15:55:45 +0200 Subject: [PATCH] MT#13903 package_id and relationships for vouchers +and topup counters Change-Id: I1ab584bd2b96e0ecc9df8d3036c19319a88c090a --- lib/NGCP/Schema/Result/contract_balances.pm | 4 ++++ lib/NGCP/Schema/Result/profile_packages.pm | 7 +++++++ lib/NGCP/Schema/Result/vouchers.pm | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/lib/NGCP/Schema/Result/contract_balances.pm b/lib/NGCP/Schema/Result/contract_balances.pm index a79887ab..7a326184 100644 --- a/lib/NGCP/Schema/Result/contract_balances.pm +++ b/lib/NGCP/Schema/Result/contract_balances.pm @@ -31,6 +31,10 @@ __PACKAGE__->add_columns( { data_type => "integer", is_nullable => 1 }, "free_time_balance_interval", { data_type => "integer", default_value => 0, is_nullable => 0 }, + "topup_count", + { data_type => "integer", default_value => 0, is_nullable => 0 }, + "timely_topup_count", + { data_type => "integer", default_value => 0, is_nullable => 0 }, "start", { data_type => "datetime", diff --git a/lib/NGCP/Schema/Result/profile_packages.pm b/lib/NGCP/Schema/Result/profile_packages.pm index 004142b7..ac1910cc 100644 --- a/lib/NGCP/Schema/Result/profile_packages.pm +++ b/lib/NGCP/Schema/Result/profile_packages.pm @@ -175,6 +175,13 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->has_many( + "vouchers", + "NGCP::Schema::Result::vouchers", + { "foreign.package_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + sub _join_condition { my ($args,$discriminator) = @_; return { #[{ diff --git a/lib/NGCP/Schema/Result/vouchers.pm b/lib/NGCP/Schema/Result/vouchers.pm index d2002488..b3095d6f 100644 --- a/lib/NGCP/Schema/Result/vouchers.pm +++ b/lib/NGCP/Schema/Result/vouchers.pm @@ -34,6 +34,13 @@ __PACKAGE__->add_columns( is_foreign_key => 1, is_nullable => 1, }, + "package_id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_foreign_key => 1, + is_nullable => 1, + }, "used_by_subscriber_id", { data_type => "integer", @@ -67,6 +74,7 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("id"); +__PACKAGE__->add_unique_constraint("vouchers_rescode_idx", ["reseller_id", "code"]); __PACKAGE__->belongs_to( "customer", @@ -100,6 +108,19 @@ __PACKAGE__->belongs_to( on_update => "CASCADE", }, ); + +__PACKAGE__->belongs_to( + "profile_package", + "NGCP::Schema::Result::profile_packages", + { id => "package_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "SET NULL", + on_update => "CASCADE", + }, +); + sub TO_JSON { my ($self) = @_; return {