From ac4bce27ab0dfeffd71c5af39f803711231700e4 Mon Sep 17 00:00:00 2001 From: Kirill Solomko Date: Tue, 12 Oct 2021 01:55:14 +0200 Subject: [PATCH] TT#145300 remove billing.domain_resellers * billing.domain_reseller is no longer in use by ngcp-schema as the table is now deprecated * add billing.domains.reseller_id field * add billing.domains "belongs_to" relation to billing.resellers * add billing.resellers "has_many" relation to billing.domains Change-Id: Ia485ddac66a5063605f506dd888be550f7327bea --- lib/NGCP/Schema/Result/domain_resellers.pm | 151 --------------------- lib/NGCP/Schema/Result/domains.pm | 27 ++-- lib/NGCP/Schema/Result/resellers.pm | 20 +-- 3 files changed, 23 insertions(+), 175 deletions(-) delete mode 100644 lib/NGCP/Schema/Result/domain_resellers.pm diff --git a/lib/NGCP/Schema/Result/domain_resellers.pm b/lib/NGCP/Schema/Result/domain_resellers.pm deleted file mode 100644 index aa4a215f..00000000 --- a/lib/NGCP/Schema/Result/domain_resellers.pm +++ /dev/null @@ -1,151 +0,0 @@ -package NGCP::Schema::Result::domain_resellers; - -use strict; -use warnings; - -use Scalar::Util qw(blessed); -use parent 'DBIx::Class::Core'; - -our $VERSION = '2.007'; - -__PACKAGE__->load_components("InflateColumn::DateTime", "Helper::Row::ToJSON"); - -__PACKAGE__->table("billing.domain_resellers"); - -__PACKAGE__->add_columns( - "id", - { - data_type => "integer", - extra => { unsigned => 1 }, - is_auto_increment => 1, - is_nullable => 0, - }, - "domain_id", - { - data_type => "integer", - extra => { unsigned => 1 }, - is_foreign_key => 1, - is_nullable => 0, - }, - "reseller_id", - { - data_type => "integer", - extra => { unsigned => 1 }, - is_foreign_key => 1, - is_nullable => 0, - }, -); - -__PACKAGE__->set_primary_key("id"); - -__PACKAGE__->belongs_to( - "domain", - "NGCP::Schema::Result::domains", - { id => "domain_id" }, - { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, -); - -__PACKAGE__->belongs_to( - "reseller", - "NGCP::Schema::Result::resellers", - { id => "reseller_id" }, - { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, -); - -sub TO_JSON { - my ($self) = @_; - return { - map { blessed($_) && $_->isa('DateTime') ? $_->datetime : $_ } %{ $self->next::method } - }; -} - -1; -__END__ - -=encoding UTF-8 - -=head1 NAME - -NGCP::Schema::Result::domain_resellers - -=head1 DESCRIPTION - -This module is a schema class for the NGCP database table "billing.domain_resellers". - -=head1 COMPONENTS LOADED - -=over 4 - -=item * L - -=item * L - -=back - -=head1 TABLE: C - -=head1 ACCESSORS - -=head2 id - - data_type: 'integer' - extra: {unsigned => 1} - is_auto_increment: 1 - is_nullable: 0 - -=head2 domain_id - - data_type: 'integer' - extra: {unsigned => 1} - is_foreign_key: 1 - is_nullable: 0 - -=head2 reseller_id - - data_type: 'integer' - extra: {unsigned => 1} - is_foreign_key: 1 - is_nullable: 0 - -=head1 PRIMARY KEY - -=over 4 - -=item * L - -=back - -=head1 RELATIONS - -=head2 domain - -Type: belongs_to - -Related object: L - -=head2 reseller - -Type: belongs_to - -Related object: L - -=head1 AUTHOR - -Sipwise Development Team C<< >> - -=head1 LICENSE - -This software is Copyright © 2017 by Sipwise GmbH, Austria. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this package. If not, see . diff --git a/lib/NGCP/Schema/Result/domains.pm b/lib/NGCP/Schema/Result/domains.pm index 86ee8596..28010414 100644 --- a/lib/NGCP/Schema/Result/domains.pm +++ b/lib/NGCP/Schema/Result/domains.pm @@ -20,6 +20,12 @@ __PACKAGE__->add_columns( is_auto_increment => 1, is_nullable => 0, }, + "reseller_id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_nullable => 0, + }, "domain", { data_type => "varchar", is_nullable => 0, size => 127 }, ); @@ -28,11 +34,16 @@ __PACKAGE__->set_primary_key("id"); __PACKAGE__->add_unique_constraint("domain_idx", ["domain"]); -__PACKAGE__->has_many( - "domain_resellers", - "NGCP::Schema::Result::domain_resellers", - { "foreign.domain_id" => "self.id" }, - { cascade_copy => 0, cascade_delete => 0 }, +__PACKAGE__->belongs_to( + "reseller", + "NGCP::Schema::Result::resellers", + { id => "reseller_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, ); __PACKAGE__->has_many( @@ -123,12 +134,6 @@ This module is a schema class for the NGCP database table "billing.domains". =head1 RELATIONS -=head2 domain_resellers - -Type: has_many - -Related object: L - =head2 voip_subscribers Type: has_many diff --git a/lib/NGCP/Schema/Result/resellers.pm b/lib/NGCP/Schema/Result/resellers.pm index e36645af..edc667e8 100644 --- a/lib/NGCP/Schema/Result/resellers.pm +++ b/lib/NGCP/Schema/Result/resellers.pm @@ -51,6 +51,13 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->has_many( + "domains", + "NGCP::Schema::Result::domains", + { "foreign.reseller_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + __PACKAGE__->has_many( "billing_profiles", "NGCP::Schema::Result::billing_profiles", @@ -79,13 +86,6 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); -__PACKAGE__->has_many( - "domain_resellers", - "NGCP::Schema::Result::domain_resellers", - { "foreign.reseller_id" => "self.id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); - __PACKAGE__->has_many( "ncos_levels", "NGCP::Schema::Result::ncos_levels", @@ -352,12 +352,6 @@ Type: has_many Related object: L -=head2 domain_resellers - -Type: has_many - -Related object: L - =head2 ncos_levels Type: has_many