diff --git a/lib/NGCP/Schema/Result/voip_peer_groups.pm b/lib/NGCP/Schema/Result/voip_peer_groups.pm index b527e7c4..69fc7b3d 100644 --- a/lib/NGCP/Schema/Result/voip_peer_groups.pm +++ b/lib/NGCP/Schema/Result/voip_peer_groups.pm @@ -24,6 +24,8 @@ __PACKAGE__->add_columns( { data_type => "varchar", is_nullable => 1, size => 255 }, "peering_contract_id", { data_type => "integer", extra => { unsigned => 1 }, is_nullable => 1 }, + "has_inbound_rules", + { data_type => "tinyint", default_value => 0, is_nullable => 0 }, ); __PACKAGE__->set_primary_key("id"); @@ -44,6 +46,13 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->has_many( + "voip_peer_inbound_rules", + "NGCP::Schema::Result::voip_peer_inbound_rules", + { "foreign.group_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + __PACKAGE__->belongs_to( "contract", "NGCP::Schema::Result::contracts", @@ -143,3 +152,9 @@ Related object: L Type: has_many Related object: L + +=head2 voip_peer_inbound_rules + +Type: has_many + +Related object: L diff --git a/lib/NGCP/Schema/Result/voip_peer_inbound_rules.pm b/lib/NGCP/Schema/Result/voip_peer_inbound_rules.pm new file mode 100644 index 00000000..6fd42ddb --- /dev/null +++ b/lib/NGCP/Schema/Result/voip_peer_inbound_rules.pm @@ -0,0 +1,144 @@ +package NGCP::Schema::Result::voip_peer_inbound_rules; +use Scalar::Util qw(blessed); +use parent 'DBIx::Class::Core'; + +our $VERSION = '2.007'; + +__PACKAGE__->load_components("InflateColumn::DateTime", "Helper::Row::ToJSON"); + +__PACKAGE__->table("provisioning.voip_peer_inbound_rules"); + +__PACKAGE__->add_columns( + "id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_auto_increment => 1, + is_nullable => 0, + }, + "group_id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_foreign_key => 1, + is_nullable => 0, + }, + "field", + { data_type => "varchar", default_value => "", is_nullable => 0, size => 255 }, + "pattern", + { data_type => "varchar", default_value => "", is_nullable => 0, size => 1023 }, + "reject_code", + { data_type => "int", is_nullable => 1 }, + "reject_reason", + { data_type => "varchar", is_nullable => 1, size => 64 }, + "priority", + { data_type => "integer", is_nullable => 0, extra => { unsigned => 1 }, }, + "enabled", + { data_type => "tinyint", default_value => 1, is_nullable => 0 }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->belongs_to( + "group", + "NGCP::Schema::Result::voip_peer_groups", + { id => "group_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::voip_peer_inbound_rules + +=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 group_id + + data_type: 'integer' + extra: {unsigned => 1} + is_foreign_key: 1 + is_nullable: 0 + +=head2 field + + data_type: 'varchar' + default_value: (empty string) + is_nullable: 0 + size: 255 + +=head2 pattern + + data_type: 'varchar' + default_value: (empty string) + is_nullable: 1 + size: 1023 + +=head2 reject_code + + data_type: 'int' + is_nullable: 1 + +=head2 reject_reason + + data_type: 'varchar' + is_nullable: 0 + size: 255 + +=head2 priority + + data_type: 'int' + is_nullable: 0 + extra: {unsigned => 1} + +=head2 enabled + + data_type: 'tinyint' + is_nullable: 0 + default_value: 1 + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=head1 RELATIONS + +=head2 group + +Type: belongs_to + +Related object: L