pgc-db/lib/Book/Schema/Result/Book.pm

150 lines
2.8 KiB
Perl

use utf8;
package Book::Schema::Result::Book;
# Created by DBIx::Class::Schema::Loader
# DO NOT MODIFY THE FIRST PART OF THIS FILE
=head1 NAME
Book::Schema::Result::Book
=head1 DESCRIPTION
A book present in the catalog of Project Gutenberg,
<https://www.gutenberg.org/>. Book titles are intentionally not unique,
not even within a given author (see for example "Paradise Lost" by John
Milton). In the catalog some titles have no author but for this table
the foreign key to author is required, so there is a bogus "[no author]"
row in the author table.
=cut
use strict;
use warnings;
use base 'DBIx::Class::Core';
=head1 COMPONENTS LOADED
=over 4
=item * L<DBIx::Class::InflateColumn::DateTime>
=back
=cut
__PACKAGE__->load_components("InflateColumn::DateTime");
=head1 TABLE: C<book>
=cut
__PACKAGE__->table("book");
=head1 ACCESSORS
=head2 id
data_type: 'integer'
is_nullable: 0
=head2 author_id
data_type: 'integer'
is_foreign_key: 1
is_nullable: 0
=head2 gutenberg_id
data_type: 'integer'
is_nullable: 0
=head2 when_created
data_type: 'timestamp with time zone'
default_value: current_timestamp
is_nullable: 0
=head2 title
data_type: 'varchar'
is_nullable: 0
size: 128
=cut
__PACKAGE__->add_columns(
"id",
{ data_type => "integer", is_nullable => 0 },
"author_id",
{ data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
"gutenberg_id",
{ data_type => "integer", is_nullable => 0 },
"when_created",
{
data_type => "timestamp with time zone",
default_value => \"current_timestamp",
is_nullable => 0,
},
"title",
{ data_type => "varchar", is_nullable => 0, size => 128 },
);
=head1 PRIMARY KEY
=over 4
=item * L</id>
=back
=cut
__PACKAGE__->set_primary_key("id");
=head1 UNIQUE CONSTRAINTS
=head2 C<book_gutid_unique>
=over 4
=item * L</gutenberg_id>
=back
=cut
__PACKAGE__->add_unique_constraint("book_gutid_unique", ["gutenberg_id"]);
=head1 RELATIONS
=head2 author
Type: belongs_to
Related object: L<Book::Schema::Result::Author>
=cut
__PACKAGE__->belongs_to(
"author",
"Book::Schema::Result::Author",
{ id => "author_id" },
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
);
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-10-13 19:14:12
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:kNvd5HfYZCAV7yeq+lDGwA
# These lines were loaded from '/home/nick/.local/lib/perl5/Book/Schema/Result/Book.pm' found in @INC.
# They are now part of the custom portion of this file
# for you to hand-edit. If you do not either delete
# this section or remove that file from @INC, this section
# will be repeated redundantly when you re-create this
# file again via Loader! See skip_load_external to disable
# this feature.
# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;