From 232a8569e68112e017c692cb787e7525635692a2 Mon Sep 17 00:00:00 2001 From: Irina Peshinskaya Date: Tue, 27 Jan 2015 18:01:43 +0200 Subject: [PATCH] MT#11147 Schema for device model and extension reference --- .../Result/autoprov_device_extensions.pm | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 lib/NGCP/Schema/Result/autoprov_device_extensions.pm diff --git a/lib/NGCP/Schema/Result/autoprov_device_extensions.pm b/lib/NGCP/Schema/Result/autoprov_device_extensions.pm new file mode 100644 index 00000000..3a664095 --- /dev/null +++ b/lib/NGCP/Schema/Result/autoprov_device_extensions.pm @@ -0,0 +1,140 @@ +package NGCP::Schema::Result::autoprov_device_extensions; +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.autoprov_device_extensions"); + +__PACKAGE__->add_columns( + "id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_auto_increment => 1, + is_nullable => 0, + }, + "device_id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_foreign_key => 1, + is_nullable => 0, + }, + "extension_id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_foreign_key => 1, + is_nullable => 0, + }, + "order", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_foreign_key => 1, + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->belongs_to( + "device", + "NGCP::Schema::Result::autoprov_devices", + { id => "device_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); +__PACKAGE__->belongs_to( + "extension", + "NGCP::Schema::Result::autoprov_devices", + { id => "extension_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::provisioning::Result::autoprov_device_extensions + +=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 device_id + + data_type: 'integer' + extra: {unsigned => 1} + is_foreign_key: 1 + is_nullable: 0 + +=head2 subscriber_id + + data_type: 'integer' + extra: {unsigned => 1} + is_foreign_key: 1 + is_nullable: 0 + +=head2 linerange_id + + data_type: 'integer' + extra: {unsigned => 1} + is_nullable: 0 + +=head2 key_id + + data_type: 'integer' + extra: {unsigned => 1} + is_nullable: 0 + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=head1 RELATIONS + +=head2 device + +Type: belongs_to + +Related object: L + +=head2 subscriber + +Type: belongs_to + +Related object: L