]> Dogcows Code - chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate/blobdiff - t/lib/DBSchema/Result/Dvd.pm
Add unique constraints on columns referenced by foreign keys
[chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate] / t / lib / DBSchema / Result / Dvd.pm
index d87147c24575e74695d65aec3a80a2ecaf8106c0..b355e52655c7feaf723d85d34e4a8fc94b09428a 100644 (file)
@@ -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('Core');
+__PACKAGE__->load_components(qw/IntrospectableM2M Core/);
 __PACKAGE__->table('dvd');
 __PACKAGE__->add_columns(
-  'id' => {
+  'dvd_id' => {
     data_type => 'integer',
     is_auto_increment => 1
   },
@@ -40,17 +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', 'User', { id => 'owner' });
-__PACKAGE__->belongs_to('current_borrower', 'User', { id => 'current_borrower' });
-__PACKAGE__->has_many('dvdtags', 'Dvdtag', { 'foreign.dvd' => '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 => 'multi', accessor_name => 'like_has_many' } );
+__PACKAGE__->add_relationship('like_has_many2', 'DBSchema::Result::Twokeys_belongsto', 
+    { 'foreign.key1' => 'self.twokeysfk' }, 
+    { accessor => 'multi' },
+); 
 
 1;
 
This page took 0.018643 seconds and 4 git commands to generate.