diff --git a/lib/NGCP/Schema/Result/provisioning_voip_subscribers.pm b/lib/NGCP/Schema/Result/provisioning_voip_subscribers.pm index 743455f9..3f4f39c3 100644 --- a/lib/NGCP/Schema/Result/provisioning_voip_subscribers.pm +++ b/lib/NGCP/Schema/Result/provisioning_voip_subscribers.pm @@ -315,6 +315,32 @@ __PACKAGE__->might_have( { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->has_many( + "sipwise_mam_user", + 'NGCP::Schema::Result::sipwise_mam', + sub { + my $args = shift; + return { + "$args->{foreign_alias}.username" => { '=' => \"concat($args->{self_alias}.username,\"@\",domain.domain)" } , + }; + }, + { join_type => 'inner' }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +__PACKAGE__->has_many( + "sipwise_mam_with", + 'NGCP::Schema::Result::sipwise_mam', + sub { + my $args = shift; + return { + "$args->{foreign_alias}.with" => { '=' => \"concat($args->{self_alias}.username,\"@\",domain.domain)" } , + }; + }, + { join_type => 'inner' }, + { cascade_copy => 0, cascade_delete => 0 }, +); + sub TO_JSON { my ($self) = @_; return { diff --git a/lib/NGCP/Schema/Result/sipwise_mam.pm b/lib/NGCP/Schema/Result/sipwise_mam.pm new file mode 100644 index 00000000..cfe1663d --- /dev/null +++ b/lib/NGCP/Schema/Result/sipwise_mam.pm @@ -0,0 +1,62 @@ +package NGCP::Schema::Result::sipwise_mam; +use Scalar::Util qw(blessed); +use parent 'DBIx::Class::Core'; + +our $VERSION = '2.007'; + +__PACKAGE__->load_components( + "InflateColumn::DateTime", + "Helper::Row::ToJSON", + "+NGCP::Schema::InflateColumn::DateTime::EpochMilli", +); + +__PACKAGE__->table("prosody.sipwise_mam"); + +__PACKAGE__->add_columns( + "id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_auto_increment => 1, + is_nullable => 0, + }, + "username", + { + data_type => "varchar", + is_nullable => 0, + size => 255 + }, + "key", + { + data_type => "binary", + is_nullable => 0, + size => 16 + }, + "stanza", + { + data_type => "text", + is_nullable => 1 + }, + "epoch", + { + data_type => "integer", + is_nullable => 0, + }, + "with", + { + data_type => "varchar", + is_nullable => 1, + size => 255 + }, +); + +__PACKAGE__->set_primary_key("id"); + +sub TO_JSON { + my ($self) = @_; + return { + map { blessed($_) && $_->isa('DateTime') ? $_->datetime : $_ } %{ $self->next::method } + }; +} + +1;