Change ViewDeps schema to use meaningful tables; use the number of views a view depen...
[dbsrgits/DBIx-Class.git] / t / lib / ViewDeps / Result / Year2010CDsWithManyTracks.pm
diff --git a/t/lib/ViewDeps/Result/Year2010CDsWithManyTracks.pm b/t/lib/ViewDeps/Result/Year2010CDsWithManyTracks.pm
new file mode 100644 (file)
index 0000000..990fea7
--- /dev/null
@@ -0,0 +1,36 @@
+package    # hide from PAUSE
+    ViewDeps::Result::Year2010CDsWithManyTracks;
+
+use strict;
+use warnings;
+use base 'ViewDeps::Result::Year2010CDs';
+
+__PACKAGE__->table_class('DBIx::Class::ResultSource::View');
+__PACKAGE__->table('year_2010_cds_with_many_tracks');
+__PACKAGE__->result_source_instance->view_definition(
+    "SELECT cd.id,cd.title,cd.artist,cd.year,cd.number_tracks,artwork.id FROM year_2010_cds cd,artwork artwork WHERE cd.number_tracks > 10 AND artwork.cd = cd.id"
+);
+
+__PACKAGE__->result_source_instance->deploy_depends_on(
+    ["ViewDeps::Result::Year2010CDs"] );
+
+__PACKAGE__->add_columns(
+    id            => { data_type => 'integer', is_auto_increment => 1 },
+    title         => { data_type => 'text' },
+    artist        => { data_type => 'integer', is_nullable       => 0 },
+    year          => { data_type => 'integer' },
+    number_tracks => { data_type => 'integer' },
+    artwork       => { data_type => 'integer' },
+);
+
+__PACKAGE__->set_primary_key('id');
+
+__PACKAGE__->belongs_to( 'artist', 'ViewDeps::Result::Artist',
+    { "foreign.id" => "self.artist" },
+);
+
+__PACKAGE__->has_many( 'tracks', 'ViewDeps::Result::Track',
+    { "foreign.cd" => "self.id" },
+);
+
+1;