From 413479b94f9024e1d51e316464962f7d9dcd9ee3 Mon Sep 17 00:00:00 2001 From: Finn Date: Tue, 20 Feb 2018 17:44:22 +0000 Subject: [PATCH] fixed table name and added initial org medal schema --- lib/Pear/LocalLoop/Schema/Result/Entity.pm | 14 +++++ .../Schema/Result/GlobalUserMedalProgress.pm | 2 +- .../LocalLoop/Schema/Result/OrgMedalGroup.pm | 34 +++++++++++ lib/Pear/LocalLoop/Schema/Result/OrgMedals.pm | 40 ++++++++++++ .../Schema/Result/OrgUserMedalProgress.pm | 47 ++++++++++++++ .../LocalLoop/Schema/Result/OrgUserMedals.pm | 61 +++++++++++++++++++ 6 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 lib/Pear/LocalLoop/Schema/Result/OrgMedalGroup.pm create mode 100644 lib/Pear/LocalLoop/Schema/Result/OrgMedals.pm create mode 100644 lib/Pear/LocalLoop/Schema/Result/OrgUserMedalProgress.pm create mode 100644 lib/Pear/LocalLoop/Schema/Result/OrgUserMedals.pm diff --git a/lib/Pear/LocalLoop/Schema/Result/Entity.pm b/lib/Pear/LocalLoop/Schema/Result/Entity.pm index f929692..804cb68 100644 --- a/lib/Pear/LocalLoop/Schema/Result/Entity.pm +++ b/lib/Pear/LocalLoop/Schema/Result/Entity.pm @@ -70,6 +70,20 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->has_many( + "org_user_medals", + "Pear::LocalLoop::Schema::Result::OrgUserMedals", + { "foreign.entity_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +__PACKAGE__->has_many( + "org_user_medal_progress", + "Pear::LocalLoop::Schema::Result::OrgUserMedalProgress", + { "foreign.entity_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + sub name { my $self = shift; diff --git a/lib/Pear/LocalLoop/Schema/Result/GlobalUserMedalProgress.pm b/lib/Pear/LocalLoop/Schema/Result/GlobalUserMedalProgress.pm index b3b159a..6c0acee 100644 --- a/lib/Pear/LocalLoop/Schema/Result/GlobalUserMedalProgress.pm +++ b/lib/Pear/LocalLoop/Schema/Result/GlobalUserMedalProgress.pm @@ -5,7 +5,7 @@ use warnings; use base 'DBIx::Class::Core'; -__PACKAGE__->table("global_user_medals"); +__PACKAGE__->table("global_user_medal_progress"); __PACKAGE__->add_columns( "id" => { diff --git a/lib/Pear/LocalLoop/Schema/Result/OrgMedalGroup.pm b/lib/Pear/LocalLoop/Schema/Result/OrgMedalGroup.pm new file mode 100644 index 0000000..eb945d2 --- /dev/null +++ b/lib/Pear/LocalLoop/Schema/Result/OrgMedalGroup.pm @@ -0,0 +1,34 @@ +package Pear::LocalLoop::Schema::Result::OrgMedalGroup; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +__PACKAGE__->table("org_medal_group"); + +__PACKAGE__->add_columns( + "id" => { + data_type => "integer", + is_auto_increment => 1, + is_nullable => 0, + }, + "group_name" => { + data_type => "varchar", + size => 255, + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->add_unique_constraint(["group_name"]); + +__PACKAGE__->has_many( + "medals", + "Pear::LocalLoop::Schema::Result::OrgMedals", + { "foreign.group_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +1; diff --git a/lib/Pear/LocalLoop/Schema/Result/OrgMedals.pm b/lib/Pear/LocalLoop/Schema/Result/OrgMedals.pm new file mode 100644 index 0000000..f57dc6d --- /dev/null +++ b/lib/Pear/LocalLoop/Schema/Result/OrgMedals.pm @@ -0,0 +1,40 @@ +package Pear::LocalLoop::Schema::Result::OrgMedals; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +__PACKAGE__->table("org_medals"); + +__PACKAGE__->add_columns( + "id" => { + data_type => "integer", + is_auto_increment => 1, + is_nullable => 0, + }, + "group_id" => { + data_type => "varchar", + size => 255, + is_nullable => 0, + }, + "threshold" => { + data_type => "integer", + is_nullable => 0, + }, + "points" => { + data_type => "integer", + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->belongs_to( + "group", + "Pear::LocalLoop::Schema::Result::OrgMedalGroup", + { id => "group_id" }, + { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, +); + +1; diff --git a/lib/Pear/LocalLoop/Schema/Result/OrgUserMedalProgress.pm b/lib/Pear/LocalLoop/Schema/Result/OrgUserMedalProgress.pm new file mode 100644 index 0000000..cf6ad54 --- /dev/null +++ b/lib/Pear/LocalLoop/Schema/Result/OrgUserMedalProgress.pm @@ -0,0 +1,47 @@ +package Pear::LocalLoop::Schema::Result::OrgUserMedals; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +__PACKAGE__->table("org_user_medal_progress"); + +__PACKAGE__->add_columns( + "id" => { + data_type => "integer", + is_auto_increment => 1, + is_nullable => 0, + }, + "entity_id" => { + data_type => "varchar", + size => 255, + is_nullable => 0, + }, + "group_id" => { + data_type => "varchar", + size => 255, + is_nullable => 0, + }, + "total" => { + data_type => "integer", + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->belongs_to( + "entity", + "Pear::LocalLoop::Schema::Result::Entity", + "entity_id", +); + +__PACKAGE__->belongs_to( + "group", + "Pear::LocalLoop::Schema::Result::OrgMedalGroup", + { id => "group_id" }, + { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, +); + +1; diff --git a/lib/Pear/LocalLoop/Schema/Result/OrgUserMedals.pm b/lib/Pear/LocalLoop/Schema/Result/OrgUserMedals.pm new file mode 100644 index 0000000..a822a42 --- /dev/null +++ b/lib/Pear/LocalLoop/Schema/Result/OrgUserMedals.pm @@ -0,0 +1,61 @@ +package Pear::LocalLoop::Schema::Result::OrgUserMedals; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +__PACKAGE__->load_components(qw/ + InflateColumn::DateTime + TimeStamp +/); + +__PACKAGE__->table("org_user_medals"); + +__PACKAGE__->add_columns( + "id" => { + data_type => "integer", + is_auto_increment => 1, + is_nullable => 0, + }, + "entity_id" => { + data_type => "varchar", + size => 255, + is_nullable => 0, + }, + "group_id" => { + data_type => "varchar", + size => 255, + is_nullable => 0, + }, + "points" => { + data_type => "integer", + is_nullable => 0, + }, + "awarded_at" => { + data_type => "datetime", + is_nullable => 0, + set_on_create => 1, + }, + "threshold" => { + data_type => "integer", + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->belongs_to( + "entity", + "Pear::LocalLoop::Schema::Result::Entity", + "entity_id", +); + +__PACKAGE__->belongs_to( + "group", + "Pear::LocalLoop::Schema::Result::OrgMedalGroup", + { id => "group_id" }, + { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" }, +); + +1;