2020-11-30 17:34:13 +00:00
|
|
|
package Pear::LocalLoop::Schema::Result::Topic;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
|
|
|
|
use base 'DBIx::Class::Core';
|
|
|
|
|
2021-03-20 12:09:50 +00:00
|
|
|
__PACKAGE__->load_components(
|
|
|
|
qw/
|
|
|
|
InflateColumn::DateTime
|
|
|
|
TimeStamp
|
|
|
|
FilterColumn
|
|
|
|
/
|
|
|
|
);
|
2020-11-30 17:34:13 +00:00
|
|
|
|
|
|
|
__PACKAGE__->table("topics");
|
|
|
|
|
|
|
|
__PACKAGE__->add_columns(
|
2021-03-20 12:09:50 +00:00
|
|
|
"id" => {
|
|
|
|
data_type => "integer",
|
|
|
|
is_auto_increment => 1,
|
|
|
|
is_nullable => 0,
|
|
|
|
},
|
2021-03-21 16:34:08 +00:00
|
|
|
"organisation_id" => {
|
|
|
|
data_type => "integer",
|
|
|
|
is_foreign_key => 1,
|
|
|
|
is_nullable => 1,
|
|
|
|
},
|
2021-03-20 12:09:50 +00:00
|
|
|
"name" => {
|
|
|
|
data_type => "varchar",
|
|
|
|
size => 200,
|
|
|
|
is_nullable => 0,
|
|
|
|
},
|
2020-11-30 17:34:13 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
__PACKAGE__->set_primary_key("id");
|
|
|
|
|
2021-03-21 16:34:08 +00:00
|
|
|
__PACKAGE__->belongs_to(
|
|
|
|
"organisation",
|
|
|
|
"Pear::LocalLoop::Schema::Result::Organisation",
|
|
|
|
{ id => "organisation_id" },
|
|
|
|
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
|
|
|
|
);
|
|
|
|
|
2020-11-30 17:34:13 +00:00
|
|
|
__PACKAGE__->has_many(
|
2021-03-25 13:54:04 +00:00
|
|
|
"user_topic_subscriptions",
|
|
|
|
"Pear::LocalLoop::Schema::Result::UserTopicSubscription",
|
2021-03-20 12:09:50 +00:00
|
|
|
{ "foreign.topic_id" => "self.id" },
|
|
|
|
{ cascade_copy => 0, cascade_delete => 0 },
|
2020-11-30 17:34:13 +00:00
|
|
|
);
|
|
|
|
|
2021-03-20 12:09:50 +00:00
|
|
|
__PACKAGE__->many_to_many(
|
2021-03-25 13:54:04 +00:00
|
|
|
'users' => 'user_topic_subscriptions',
|
|
|
|
'user'
|
2021-03-20 12:09:50 +00:00
|
|
|
);
|
2020-11-30 17:34:13 +00:00
|
|
|
|
2021-03-25 13:54:04 +00:00
|
|
|
__PACKAGE__->many_to_many( 'topics' => 'user_topic_subscriptions', 'topic' );
|
|
|
|
|
2020-11-30 17:34:13 +00:00
|
|
|
1;
|