X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FDBICTest%2FSchema%2FTrack.pm;h=c27ba988bbd5d33194e4f489d4d6b08c27c631b7;hb=13523f299f81871f7c33fb2e662fc2b5b009f9d2;hp=e3f731ec2617925336c38ee5f5d6cb9ce30b5872;hpb=1ceafb0cf3647c04e3e7029f7c1a2d0559f6d595;p=dbsrgits%2FDBIx-Class.git diff --git a/t/lib/DBICTest/Schema/Track.pm b/t/lib/DBICTest/Schema/Track.pm index e3f731e..c27ba98 100644 --- a/t/lib/DBICTest/Schema/Track.pm +++ b/t/lib/DBICTest/Schema/Track.pm @@ -1,7 +1,7 @@ -package # hide from PAUSE +package # hide from PAUSE DBICTest::Schema::Track; -use base 'DBIx::Class::Core'; +use base qw/DBICTest::BaseResult/; __PACKAGE__->load_components(qw/InflateColumn::DateTime Ordered/); __PACKAGE__->table('track'); @@ -14,7 +14,7 @@ __PACKAGE__->add_columns( data_type => 'integer', }, 'position' => { - data_type => 'integer', + data_type => 'int', accessor => 'pos', }, 'title' => { @@ -26,6 +26,10 @@ __PACKAGE__->add_columns( accessor => 'updated_date', is_nullable => 1 }, + last_updated_at => { + data_type => 'datetime', + is_nullable => 1 + }, ); __PACKAGE__->set_primary_key('trackid'); @@ -36,10 +40,43 @@ __PACKAGE__->position_column ('position'); __PACKAGE__->grouping_column ('cd'); -__PACKAGE__->belongs_to( cd => 'DBICTest::Schema::CD' ); -__PACKAGE__->belongs_to( disc => 'DBICTest::Schema::CD' => 'cd'); +__PACKAGE__->belongs_to( cd => 'DBICTest::Schema::CD', undef, { + proxy => { cd_title => 'title' }, +}); +__PACKAGE__->belongs_to( disc => 'DBICTest::Schema::CD' => 'cd', { + proxy => 'year' +}); __PACKAGE__->might_have( cd_single => 'DBICTest::Schema::CD', 'single_track' ); __PACKAGE__->might_have( lyrics => 'DBICTest::Schema::Lyrics', 'track_id' ); +__PACKAGE__->belongs_to( + "year1999cd", + "DBICTest::Schema::Year1999CDs", + { "foreign.cdid" => "self.cd" }, + { join_type => 'left' }, # the relationship is of course optional +); +__PACKAGE__->belongs_to( + "year2000cd", + "DBICTest::Schema::Year2000CDs", + { "foreign.cdid" => "self.cd" }, + { join_type => 'left' }, +); + +__PACKAGE__->might_have ( + 'next_track', + __PACKAGE__, + sub { + my ( $me_alias, $rel_alias, $me_result_source, $rel_name, $optional_me_object ) = @_; + return + ({ "${rel_alias}.cd" => { '=', \"${me_alias}.cd" }, + "${rel_alias}.position" => { '>', \"${me_alias}.position" }, + }, + $optional_me_object && + { "${rel_alias}.cd" => $optional_me_object->cd, + "${rel_alias}.position" => { '>', $optional_me_object->position }, + }); + }, +); + 1;