X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-DBIx-Class-ResultSet-RecursiveUpdate;a=blobdiff_plain;f=t%2Flib%2FDBSchema%2FResult%2FDvd.pm;h=b355e52655c7feaf723d85d34e4a8fc94b09428a;hp=f761f764300ab2195275cbecaa23f43d530fa20d;hb=45d3acef815c1fb052b317bc81bb7470a34cde30;hpb=264a28fa4c2fdab1244cdba5c9e606ce8c411c0a diff --git a/t/lib/DBSchema/Result/Dvd.pm b/t/lib/DBSchema/Result/Dvd.pm index f761f76..b355e52 100644 --- a/t/lib/DBSchema/Result/Dvd.pm +++ b/t/lib/DBSchema/Result/Dvd.pm @@ -8,11 +8,10 @@ use warnings; use base 'DBIx::Class'; use overload '""' => sub {$_[0]->name}, fallback => 1; -use lib '../../DBIx-Class-HTML-FormFu/lib/'; __PACKAGE__->load_components(qw/IntrospectableM2M Core/); __PACKAGE__->table('dvd'); __PACKAGE__->add_columns( - 'id' => { + 'dvd_id' => { data_type => 'integer', is_auto_increment => 1 }, @@ -40,19 +39,28 @@ __PACKAGE__->add_columns( data_type => 'datetime', is_nullable => 1, }, + 'twokeysfk' => { + data_type => 'integer', + is_nullable => 1, + }, ); -__PACKAGE__->set_primary_key('id'); -__PACKAGE__->belongs_to('owner', 'DBSchema::Result::User', { id => 'owner' }); -__PACKAGE__->belongs_to('current_borrower', 'DBSchema::Result::User', { id => 'current_borrower' }); -__PACKAGE__->has_many('dvdtags', 'Dvdtag', { 'foreign.dvd' => 'self.id' }); -__PACKAGE__->has_many('viewings', 'Viewing', { 'foreign.dvd_id' => 'self.id' }); +__PACKAGE__->set_primary_key('dvd_id'); +__PACKAGE__->add_unique_constraint(dvd_name => [qw(name)]); +__PACKAGE__->add_unique_constraint(dvd_twokeys => [qw(twokeysfk)]); +__PACKAGE__->belongs_to('owner', 'DBSchema::Result::User', 'owner'); +__PACKAGE__->belongs_to('current_borrower', 'DBSchema::Result::User', 'current_borrower', { join_type => "LEFT" }); +__PACKAGE__->has_many('dvdtags', 'Dvdtag', { 'foreign.dvd' => 'self.dvd_id' }); +__PACKAGE__->has_many('viewings', 'DBSchema::Result::Viewing', { 'foreign.dvd_id' => 'self.dvd_id' }); __PACKAGE__->many_to_many('tags', 'dvdtags' => 'tag'); __PACKAGE__->might_have( liner_notes => 'DBSchema::Result::LinerNotes', undef, { proxy => [ qw/notes/ ] }, ); -__PACKAGE__->add_relationship('like_has_many', 'DBSchema::Result::Twokeys', { 'foreign.dvd_name' => 'self.name' }, { accessor_name => 'like_has_many' } ); - +__PACKAGE__->add_relationship('like_has_many', 'DBSchema::Result::Twokeys', { 'foreign.dvd_name' => 'self.name' }, { accessor => 'multi', accessor_name => 'like_has_many' } ); +__PACKAGE__->add_relationship('like_has_many2', 'DBSchema::Result::Twokeys_belongsto', + { 'foreign.key1' => 'self.twokeysfk' }, + { accessor => 'multi' }, +); 1;