-package # hide from PAUSE
+package # hide from PAUSE
DBICTest::Schema::Track;
use base qw/DBICTest::BaseResult/;
data_type => 'integer',
},
'position' => {
- data_type => 'integer',
+ data_type => 'int',
accessor => 'pos',
},
'title' => {
data_type => 'datetime',
is_nullable => 1
},
- small_dt => { # for mssql and sybase DT tests
- data_type => 'smalldatetime',
- is_nullable => 1
- },
- increment => {
- data_type => 'integer',
- is_nullable => 1,
- accessor => '_increment',
- }
);
__PACKAGE__->set_primary_key('trackid');
__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' );
-sub increment {
- my $self = shift;
- if(@_) {
- return $self->_increment($_[0] + 1);
- }
- return $self->_increment();
-}
+__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' },
+);
-sub set_increment {
- my $self = shift;
- if(@_) {
- return $self->_increment($_[0]);
- }
- return $self->_increment();
-}
+__PACKAGE__->might_have (
+ 'next_track',
+ __PACKAGE__,
+ sub {
+ my ( $me, $as, $self_rsrc, $rel_name ) = @_;
+ return {
+ "${as}.cd" => (ref $me ? $me->cd : { '=' => \"${me}.cd" }),
+ "${as}.position" => { '>', (ref $me ? $me->position : \"${me}.position" )},
+ };
+ },
+);
1;