1package # hide from PAUSE 2 DBICTest::Schema::Track; 3 4use base qw/DBICTest::BaseResult/; 5__PACKAGE__->load_components(qw/InflateColumn::DateTime Ordered/); 6 7__PACKAGE__->table('track'); 8__PACKAGE__->add_columns( 9 'trackid' => { 10 data_type => 'integer', 11 is_auto_increment => 1, 12 }, 13 'cd' => { 14 data_type => 'integer', 15 }, 16 'position' => { 17 data_type => 'int', 18 accessor => 'pos', 19 }, 20 'title' => { 21 data_type => 'varchar', 22 size => 100, 23 }, 24 last_updated_on => { 25 data_type => 'datetime', 26 accessor => 'updated_date', 27 is_nullable => 1 28 }, 29 last_updated_at => { 30 data_type => 'datetime', 31 is_nullable => 1 32 }, 33 small_dt => { # for mssql and sybase DT tests 34 data_type => 'smalldatetime', 35 is_nullable => 1 36 }, 37); 38__PACKAGE__->set_primary_key('trackid'); 39 40__PACKAGE__->add_unique_constraint([ qw/cd position/ ]); 41__PACKAGE__->add_unique_constraint([ qw/cd title/ ]); 42 43__PACKAGE__->position_column ('position'); 44__PACKAGE__->grouping_column ('cd'); 45 46 47__PACKAGE__->belongs_to( cd => 'DBICTest::Schema::CD' ); 48__PACKAGE__->belongs_to( disc => 'DBICTest::Schema::CD' => 'cd'); 49 50__PACKAGE__->might_have( cd_single => 'DBICTest::Schema::CD', 'single_track' ); 51__PACKAGE__->might_have( lyrics => 'DBICTest::Schema::Lyrics', 'track_id' ); 52 53__PACKAGE__->belongs_to( 54 "year1999cd", 55 "DBICTest::Schema::Year1999CDs", 56 { "foreign.cdid" => "self.cd" }, 57 { join_type => 'left' }, # the relationship is of course optional 58); 59__PACKAGE__->belongs_to( 60 "year2000cd", 61 "DBICTest::Schema::Year2000CDs", 62 { "foreign.cdid" => "self.cd" }, 63 { join_type => 'left' }, 64); 65 661; 67