From 8f372e1e43d7d18abe6558dfaceb3e1780763bea Mon Sep 17 00:00:00 2001 From: Matt Blenkinsop Date: Thu, 27 Apr 2023 10:49:20 +0000 Subject: [PATCH] Bug 34587: DBIC files Signed-off-by: Jessica Zairo Signed-off-by: Michaela Sieber Signed-off-by: Nick Clemens Signed-off-by: Tomas Cohen Arazi --- Koha/Schema/Result/Borrower.pm | 15 ++ Koha/Schema/Result/ErmCounterFile.pm | 157 +++++++++++ Koha/Schema/Result/ErmCounterLog.pm | 161 +++++++++++ Koha/Schema/Result/ErmUsageDataProvider.pm | 297 +++++++++++++++++++++ Koha/Schema/Result/ErmUsageMus.pm | 174 ++++++++++++ Koha/Schema/Result/ErmUsageTitle.pm | 172 ++++++++++++ Koha/Schema/Result/ErmUsageYus.pm | 165 ++++++++++++ 7 files changed, 1141 insertions(+) create mode 100644 Koha/Schema/Result/ErmCounterFile.pm create mode 100644 Koha/Schema/Result/ErmCounterLog.pm create mode 100644 Koha/Schema/Result/ErmUsageDataProvider.pm create mode 100644 Koha/Schema/Result/ErmUsageMus.pm create mode 100644 Koha/Schema/Result/ErmUsageTitle.pm create mode 100644 Koha/Schema/Result/ErmUsageYus.pm diff --git a/Koha/Schema/Result/Borrower.pm b/Koha/Schema/Result/Borrower.pm index ff0c1ca9b1..e027a16947 100644 --- a/Koha/Schema/Result/Borrower.pm +++ b/Koha/Schema/Result/Borrower.pm @@ -1312,6 +1312,21 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +=head2 erm_counter_logs + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "erm_counter_logs", + "Koha::Schema::Result::ErmCounterLog", + { "foreign.borrowernumber" => "self.borrowernumber" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + =head2 erm_user_roles Type: has_many diff --git a/Koha/Schema/Result/ErmCounterFile.pm b/Koha/Schema/Result/ErmCounterFile.pm new file mode 100644 index 0000000000..fda2cfc873 --- /dev/null +++ b/Koha/Schema/Result/ErmCounterFile.pm @@ -0,0 +1,157 @@ +use utf8; +package Koha::Schema::Result::ErmCounterFile; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::ErmCounterFile + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("erm_counter_files"); + +=head1 ACCESSORS + +=head2 erm_counter_files_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +primary key + +=head2 usage_data_provider_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + +foreign key to erm_usage_data_providers + +=head2 type + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +type of counter file + +=head2 filename + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +name of the counter file + +=head2 file_content + + data_type: 'longblob' + is_nullable: 1 + +content of the counter file + +=head2 date_uploaded + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: current_timestamp + is_nullable: 0 + +counter file upload date + +=cut + +__PACKAGE__->add_columns( + "erm_counter_files_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "usage_data_provider_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, + "type", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "filename", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "file_content", + { data_type => "longblob", is_nullable => 1 }, + "date_uploaded", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("erm_counter_files_id"); + +=head1 RELATIONS + +=head2 erm_counter_logs + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "erm_counter_logs", + "Koha::Schema::Result::ErmCounterLog", + { "foreign.counter_files_id" => "self.erm_counter_files_id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +=head2 usage_data_provider + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "usage_data_provider", + "Koha::Schema::Result::ErmUsageDataProvider", + { erm_usage_data_provider_id => "usage_data_provider_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2023-03-15 09:43:08 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+cy3yVUyED7b16dNoC6dSQ + + +sub koha_object_class { + 'Koha::ERM::CounterFile'; +} +sub koha_objects_class { + 'Koha::ERM::CounterFiles'; +} + +1; diff --git a/Koha/Schema/Result/ErmCounterLog.pm b/Koha/Schema/Result/ErmCounterLog.pm new file mode 100644 index 0000000000..22250cfb29 --- /dev/null +++ b/Koha/Schema/Result/ErmCounterLog.pm @@ -0,0 +1,161 @@ +use utf8; +package Koha::Schema::Result::ErmCounterLog; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::ErmCounterLog + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("erm_counter_logs"); + +=head1 ACCESSORS + +=head2 erm_counter_log_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +primary key + +=head2 borrowernumber + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + +foreign key to borrowers + +=head2 counter_files_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + +foreign key to erm_counter_files + +=head2 importdate + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: current_timestamp + is_nullable: 0 + +counter file import date + +=head2 filename + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +name of the counter file + +=head2 logdetails + + data_type: 'longtext' + is_nullable: 1 + +details from the counter log + +=cut + +__PACKAGE__->add_columns( + "erm_counter_log_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "borrowernumber", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, + "counter_files_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, + "importdate", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, + "filename", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "logdetails", + { data_type => "longtext", is_nullable => 1 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("erm_counter_log_id"); + +=head1 RELATIONS + +=head2 borrowernumber + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "borrowernumber", + "Koha::Schema::Result::Borrower", + { borrowernumber => "borrowernumber" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + +=head2 counter_file + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "counter_file", + "Koha::Schema::Result::ErmCounterFile", + { erm_counter_files_id => "counter_files_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2023-03-16 17:38:56 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:v22verlpwR3+7qLwsxJjtw + + +sub koha_object_class { + 'Koha::ERM::CounterLog'; +} +sub koha_objects_class { + 'Koha::ERM::CounterLogs'; +} +1; diff --git a/Koha/Schema/Result/ErmUsageDataProvider.pm b/Koha/Schema/Result/ErmUsageDataProvider.pm new file mode 100644 index 0000000000..259a685d3a --- /dev/null +++ b/Koha/Schema/Result/ErmUsageDataProvider.pm @@ -0,0 +1,297 @@ +use utf8; +package Koha::Schema::Result::ErmUsageDataProvider; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::ErmUsageDataProvider + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("erm_usage_data_providers"); + +=head1 ACCESSORS + +=head2 erm_usage_data_provider_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +primary key + +=head2 name + + data_type: 'varchar' + is_nullable: 0 + size: 80 + +name of the data provider + +=head2 description + + data_type: 'longtext' + is_nullable: 1 + +description of the data provider + +=head2 active + + data_type: 'tinyint' + default_value: 1 + is_nullable: 0 + +current status of the harvester - active/inactive + +=head2 method + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +method of the harvester + +=head2 aggregator + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +aggregator of the harvester + +=head2 service_type + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +service_type of the harvester + +=head2 service_url + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +service_url of the harvester + +=head2 report_release + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +report_release of the harvester + +=head2 begin_date + + data_type: 'date' + datetime_undef_if_invalid: 1 + is_nullable: 1 + +start date of the harvester + +=head2 end_date + + data_type: 'date' + datetime_undef_if_invalid: 1 + is_nullable: 1 + +end date of the harvester + +=head2 customer_id + + data_type: 'varchar' + is_nullable: 1 + size: 50 + +sushi customer id + +=head2 requestor_id + + data_type: 'varchar' + is_nullable: 1 + size: 50 + +sushi requestor id + +=head2 api_key + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +sushi api key + +=head2 requestor_name + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +requestor name + +=head2 requestor_email + + data_type: 'varchar' + is_nullable: 1 + size: 80 + +requestor email + +=head2 report_types + + data_type: 'varchar' + is_nullable: 1 + size: 255 + +report types provided by the harvester + +=cut + +__PACKAGE__->add_columns( + "erm_usage_data_provider_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "name", + { data_type => "varchar", is_nullable => 0, size => 80 }, + "description", + { data_type => "longtext", is_nullable => 1 }, + "active", + { data_type => "tinyint", default_value => 1, is_nullable => 0 }, + "method", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "aggregator", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "service_type", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "service_url", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "report_release", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "begin_date", + { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 }, + "end_date", + { data_type => "date", datetime_undef_if_invalid => 1, is_nullable => 1 }, + "customer_id", + { data_type => "varchar", is_nullable => 1, size => 50 }, + "requestor_id", + { data_type => "varchar", is_nullable => 1, size => 50 }, + "api_key", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "requestor_name", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "requestor_email", + { data_type => "varchar", is_nullable => 1, size => 80 }, + "report_types", + { data_type => "varchar", is_nullable => 1, size => 255 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("erm_usage_data_provider_id"); + +=head1 RELATIONS + +=head2 erm_counter_files + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "erm_counter_files", + "Koha::Schema::Result::ErmCounterFile", + { + "foreign.usage_data_provider_id" => "self.erm_usage_data_provider_id", + }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +=head2 erm_usage_muses + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "erm_usage_muses", + "Koha::Schema::Result::ErmUsageMus", + { + "foreign.usage_data_provider_id" => "self.erm_usage_data_provider_id", + }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +=head2 erm_usage_titles + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "erm_usage_titles", + "Koha::Schema::Result::ErmUsageTitle", + { + "foreign.usage_data_provider_id" => "self.erm_usage_data_provider_id", + }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +=head2 erm_usage_yuses + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "erm_usage_yuses", + "Koha::Schema::Result::ErmUsageYus", + { + "foreign.usage_data_provider_id" => "self.erm_usage_data_provider_id", + }, + { cascade_copy => 0, cascade_delete => 0 }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2023-03-16 17:38:56 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:XdI3SAA+QWQsWyQdoS0EEQ + +# __PACKAGE__->add_columns( +# '+active' => { is_boolean => 1 } +# ); + +sub koha_object_class { + 'Koha::ERM::UsageDataProvider'; +} +sub koha_objects_class { + 'Koha::ERM::UsageDataProviders'; +} + +1; diff --git a/Koha/Schema/Result/ErmUsageMus.pm b/Koha/Schema/Result/ErmUsageMus.pm new file mode 100644 index 0000000000..3563bc02d8 --- /dev/null +++ b/Koha/Schema/Result/ErmUsageMus.pm @@ -0,0 +1,174 @@ +use utf8; +package Koha::Schema::Result::ErmUsageMus; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::ErmUsageMus + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("erm_usage_mus"); + +=head1 ACCESSORS + +=head2 monthly_usage_summary_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +primary key + +=head2 title_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + +item title id number + +=head2 usage_data_provider_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + +item title id number + +=head2 year + + data_type: 'integer' + is_nullable: 1 + +year of usage statistics + +=head2 month + + data_type: 'integer' + is_nullable: 1 + +month of usage statistics + +=head2 usage_count + + data_type: 'integer' + is_nullable: 1 + +usage count for the title + +=head2 metric_type + + data_type: 'varchar' + is_nullable: 1 + size: 50 + +metric type for the usage statistic + +=head2 report_type + + data_type: 'varchar' + is_nullable: 1 + size: 50 + +report type for the usage statistic + +=cut + +__PACKAGE__->add_columns( + "monthly_usage_summary_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "title_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, + "usage_data_provider_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, + "year", + { data_type => "integer", is_nullable => 1 }, + "month", + { data_type => "integer", is_nullable => 1 }, + "usage_count", + { data_type => "integer", is_nullable => 1 }, + "metric_type", + { data_type => "varchar", is_nullable => 1, size => 50 }, + "report_type", + { data_type => "varchar", is_nullable => 1, size => 50 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("monthly_usage_summary_id"); + +=head1 RELATIONS + +=head2 title + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "title", + "Koha::Schema::Result::ErmUsageTitle", + { title_id => "title_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + +=head2 usage_data_provider + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "usage_data_provider", + "Koha::Schema::Result::ErmUsageDataProvider", + { erm_usage_data_provider_id => "usage_data_provider_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2023-04-25 13:49:06 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QarVvHaFDYvZtUt2brKM2w + + +sub koha_object_class { + 'Koha::ERM::MonthlyUsage'; +} +sub koha_objects_class { + 'Koha::ERM::MonthlyUsages'; +} + +1; diff --git a/Koha/Schema/Result/ErmUsageTitle.pm b/Koha/Schema/Result/ErmUsageTitle.pm new file mode 100644 index 0000000000..0bbee58cab --- /dev/null +++ b/Koha/Schema/Result/ErmUsageTitle.pm @@ -0,0 +1,172 @@ +use utf8; +package Koha::Schema::Result::ErmUsageTitle; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::ErmUsageTitle + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("erm_usage_titles"); + +=head1 ACCESSORS + +=head2 title_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +primary key + +=head2 title + + data_type: 'varchar' + is_nullable: 1 + size: 255 + +item title + +=head2 usage_data_provider_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 0 + +platform the title is harvested by + +=head2 title_doi + + data_type: 'varchar' + is_nullable: 1 + size: 24 + +DOI number for the title + +=head2 print_issn + + data_type: 'varchar' + is_nullable: 1 + size: 24 + +Print ISSN number for the title + +=head2 online_issn + + data_type: 'varchar' + is_nullable: 1 + size: 24 + +Online ISSN number for the title + +=head2 title_uri + + data_type: 'varchar' + is_nullable: 1 + size: 24 + +URI number for the title + +=cut + +__PACKAGE__->add_columns( + "title_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "title", + { data_type => "varchar", is_nullable => 1, size => 255 }, + "usage_data_provider_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "title_doi", + { data_type => "varchar", is_nullable => 1, size => 24 }, + "print_issn", + { data_type => "varchar", is_nullable => 1, size => 24 }, + "online_issn", + { data_type => "varchar", is_nullable => 1, size => 24 }, + "title_uri", + { data_type => "varchar", is_nullable => 1, size => 24 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("title_id"); + +=head1 RELATIONS + +=head2 erm_usage_muses + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "erm_usage_muses", + "Koha::Schema::Result::ErmUsageMus", + { "foreign.title_id" => "self.title_id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +=head2 erm_usage_yuses + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "erm_usage_yuses", + "Koha::Schema::Result::ErmUsageYus", + { "foreign.title_id" => "self.title_id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +=head2 usage_data_provider + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "usage_data_provider", + "Koha::Schema::Result::ErmUsageDataProvider", + { erm_usage_data_provider_id => "usage_data_provider_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2023-03-15 09:43:08 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:IfPJJVTctPmRyVYt0DUbYA + + +sub koha_object_class { + 'Koha::ERM::UsageTitle'; +} +sub koha_objects_class { + 'Koha::ERM::UsageTitles'; +} + +1; diff --git a/Koha/Schema/Result/ErmUsageYus.pm b/Koha/Schema/Result/ErmUsageYus.pm new file mode 100644 index 0000000000..07f3d09cd5 --- /dev/null +++ b/Koha/Schema/Result/ErmUsageYus.pm @@ -0,0 +1,165 @@ +use utf8; +package Koha::Schema::Result::ErmUsageYus; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::ErmUsageYus + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("erm_usage_yus"); + +=head1 ACCESSORS + +=head2 yearly_usage_summary_id + + data_type: 'integer' + is_auto_increment: 1 + is_nullable: 0 + +primary key + +=head2 title_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + +item title id number + +=head2 usage_data_provider_id + + data_type: 'integer' + is_foreign_key: 1 + is_nullable: 1 + +item title id number + +=head2 year + + data_type: 'integer' + is_nullable: 1 + +year of usage statistics + +=head2 totalcount + + data_type: 'integer' + is_nullable: 1 + +usage count for the title + +=head2 metric_type + + data_type: 'varchar' + is_nullable: 1 + size: 50 + +metric type for the usage statistic + +=head2 report_type + + data_type: 'varchar' + is_nullable: 1 + size: 50 + +report type for the usage statistic + +=cut + +__PACKAGE__->add_columns( + "yearly_usage_summary_id", + { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, + "title_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, + "usage_data_provider_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, + "year", + { data_type => "integer", is_nullable => 1 }, + "totalcount", + { data_type => "integer", is_nullable => 1 }, + "metric_type", + { data_type => "varchar", is_nullable => 1, size => 50 }, + "report_type", + { data_type => "varchar", is_nullable => 1, size => 50 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("yearly_usage_summary_id"); + +=head1 RELATIONS + +=head2 title + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "title", + "Koha::Schema::Result::ErmUsageTitle", + { title_id => "title_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + +=head2 usage_data_provider + +Type: belongs_to + +Related object: L + +=cut + +__PACKAGE__->belongs_to( + "usage_data_provider", + "Koha::Schema::Result::ErmUsageDataProvider", + { erm_usage_data_provider_id => "usage_data_provider_id" }, + { + is_deferrable => 1, + join_type => "LEFT", + on_delete => "CASCADE", + on_update => "CASCADE", + }, +); + + +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2023-04-25 13:49:06 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zXTpOQQ2kTmGzzOSohg0YA + + +sub koha_object_class { + 'Koha::ERM::YearlyUsage'; +} +sub koha_objects_class { + 'Koha::ERM::YearlyUsages'; +} + +1; -- 2.39.5