summary refs log tree commit diff
path: root/lib/githubexplorer/Schema/Result
diff options
context:
space:
mode:
Diffstat (limited to 'lib/githubexplorer/Schema/Result')
-rw-r--r--lib/githubexplorer/Schema/Result/Follow.pm18
-rw-r--r--lib/githubexplorer/Schema/Result/Profiles.pm28
-rw-r--r--lib/githubexplorer/Schema/Result/Repositories.pm23
3 files changed, 69 insertions, 0 deletions
diff --git a/lib/githubexplorer/Schema/Result/Follow.pm b/lib/githubexplorer/Schema/Result/Follow.pm
new file mode 100644
index 0000000..735980b
--- /dev/null
+++ b/lib/githubexplorer/Schema/Result/Follow.pm
@@ -0,0 +1,18 @@
+package githubexplorer::Schema::Result::Follow;
+
+use base qw/DBIx::Class/;
+
+__PACKAGE__->load_components(qw/Core/);
+__PACKAGE__->table('follow');
+
+__PACKAGE__->add_columns(
+    id_follower  => { data_type => 'int', },
+    id_following => { data_type => 'int' },
+);
+__PACKAGE__->set_primary_key(qw/id_follower id_following/);
+__PACKAGE__->belongs_to( 'id_follower',
+    'githubexplorer::Schema::Result::Profiles' );
+__PACKAGE__->belongs_to( 'id_following',
+    'githubexplorer::Schema::Result::Profiles' );
+
+1;
diff --git a/lib/githubexplorer/Schema/Result/Profiles.pm b/lib/githubexplorer/Schema/Result/Profiles.pm
new file mode 100644
index 0000000..001057e
--- /dev/null
+++ b/lib/githubexplorer/Schema/Result/Profiles.pm
@@ -0,0 +1,28 @@
+package githubexplorer::Schema::Result::Profiles;
+
+use base qw/DBIx::Class/;
+
+__PACKAGE__->load_components(qw/Core/);
+__PACKAGE__->table('profiles');
+__PACKAGE__->add_columns(
+    id                => { data_type => 'integer', },
+    login             => { data_type => 'varchar' },
+    blog              => { data_type => 'varchar', is_nullable => 1 },
+    company           => { data_type => 'varchar', is_nullable => 1 },
+    created_at        => { data_type => 'timestamp' },
+    email             => { data_type => 'varchar', is_nullable => 1 },
+    followers_count   => { data_type => 'int' },
+    following_count   => { data_type => 'int' },
+    gravatar_id       => { data_type => 'varchar', is_nullable => 1 },
+    location          => { data_type => 'varchar', is_nullable => 1 },
+    name              => { data_type => 'varchar', is_nullable => 1 },
+    public_gist_count => { data_type => 'int' },
+    public_repo_count => { data_type => 'int' },
+    depth             => { data_type => 'boolean' },
+);
+
+__PACKAGE__->set_primary_key('id');
+__PACKAGE__->has_many( 'get_repos',
+    'githubexplorer::Schema::Result::Repositories', 'id_profile' );
+
+1;
diff --git a/lib/githubexplorer/Schema/Result/Repositories.pm b/lib/githubexplorer/Schema/Result/Repositories.pm
new file mode 100644
index 0000000..641305f
--- /dev/null
+++ b/lib/githubexplorer/Schema/Result/Repositories.pm
@@ -0,0 +1,23 @@
+package githubexplorer::Schema::Result::Repositories;
+
+use base qw/DBIx::Class/;
+
+__PACKAGE__->load_components(qw/Core/);
+__PACKAGE__->table('repositories');
+__PACKAGE__->add_columns(
+    id          => { data_type => 'integer', is_auto_increment => 1 },
+    description => { data_type => 'text',    is_nullable       => 1 },
+    name        => { data_type => 'varchar' },
+    homepage    => { data_type => 'varchar', is_nullable       => 1 },
+    url         => { data_type => 'varchar', is_nullable       => 1 },
+    watchers    => { data_type => 'int' },
+    forks       => { data_type => 'int' },
+    id_profile  => { data_type => 'int',     is_foreign_key    => 1 },
+);
+
+__PACKAGE__->set_primary_key('id');
+__PACKAGE__->belongs_to( 'id_profile',
+    'githubexplorer::Schema::Result::Profiles' );
+__PACKAGE__->add_unique_constraint( [qw/name id_profile/] );
+
+1;