use warnings;
use base 'DBIx::Class::Core';
+use Carp;
=head1 COMPONENTS LOADED
=item * L<DBIx::Class::InflateColumn::DateTime>
+=item * L<DBIx::Class::TimeStamp>
+
=back
=cut
-__PACKAGE__->load_components("InflateColumn::DateTime");
+__PACKAGE__->load_components("InflateColumn::DateTime", "TimeStamp");
=head1 TABLE: C<bug>
Subject of the bug
-=head2 done
+=head2 severity
- data_type: 'text'
- default_value: (empty string)
+ data_type: 'integer'
+ is_foreign_key: 1
is_nullable: 0
+=head2 done
+
+ data_type: 'integer'
+ is_foreign_key: 1
+ is_nullable: 1
+
Individual who did the -done; empty if it has never been -done
-=head2 owner
+=head2 done_full
data_type: 'text'
default_value: (empty string)
is_nullable: 0
+=head2 owner
+
+ data_type: 'integer'
+ is_foreign_key: 1
+ is_nullable: 1
+
Individual who owns this bug; empty if no one owns it
-=head2 submitter
+=head2 owner_full
data_type: 'text'
default_value: (empty string)
is_nullable: 0
+=head2 submitter
+
+ data_type: 'integer'
+ is_foreign_key: 1
+ is_nullable: 1
+
Individual who submitted this bug; empty if there is no submitter
+=head2 submitter_full
+
+ data_type: 'text'
+ default_value: (empty string)
+ is_nullable: 0
+
=head2 unknown_packages
data_type: 'text'
{ data_type => "text", default_value => "", is_nullable => 0 },
"subject",
{ data_type => "text", is_nullable => 0 },
+ "severity",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
"done",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
+ "done_full",
{ data_type => "text", default_value => "", is_nullable => 0 },
"owner",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
+ "owner_full",
{ data_type => "text", default_value => "", is_nullable => 0 },
"submitter",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
+ "submitter_full",
{ data_type => "text", default_value => "", is_nullable => 0 },
"unknown_packages",
{ data_type => "text", default_value => "", is_nullable => 0 },
=head1 RELATIONS
+=head2 bug_affects_binpackages
+
+Type: has_many
+
+Related object: L<Debbugs::DB::Result::BugAffectsBinpackage>
+
+=cut
+
+__PACKAGE__->has_many(
+ "bug_affects_binpackages",
+ "Debbugs::DB::Result::BugAffectsBinpackage",
+ { "foreign.bug" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+
+=head2 bug_affects_srcpackages
+
+Type: has_many
+
+Related object: L<Debbugs::DB::Result::BugAffectsSrcpackage>
+
+=cut
+
+__PACKAGE__->has_many(
+ "bug_affects_srcpackages",
+ "Debbugs::DB::Result::BugAffectsSrcpackage",
+ { "foreign.bug" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+
=head2 bug_binpackages
Type: has_many
{ cascade_copy => 0, cascade_delete => 0 },
);
-=head2 bug_messages
+=head2 bug_mergeds_merged
Type: has_many
-Related object: L<Debbugs::DB::Result::BugMessage>
+Related object: L<Debbugs::DB::Result::BugMerged>
=cut
__PACKAGE__->has_many(
- "bug_messages",
- "Debbugs::DB::Result::BugMessage",
- { "foreign.bug" => "self.id" },
+ "bug_mergeds_merged",
+ "Debbugs::DB::Result::BugMerged",
+ { "foreign.merged" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
-=head2 bug_severity
+=head2 bug_messages
-Type: might_have
+Type: has_many
-Related object: L<Debbugs::DB::Result::BugSeverity>
+Related object: L<Debbugs::DB::Result::BugMessage>
=cut
-__PACKAGE__->might_have(
- "bug_severity",
- "Debbugs::DB::Result::BugSeverity",
+__PACKAGE__->has_many(
+ "bug_messages",
+ "Debbugs::DB::Result::BugMessage",
{ "foreign.bug" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
{ cascade_copy => 0, cascade_delete => 0 },
);
-=head2 bug_submitters
+=head2 bug_status_caches
Type: has_many
-Related object: L<Debbugs::DB::Result::BugSubmitter>
+Related object: L<Debbugs::DB::Result::BugStatusCache>
=cut
__PACKAGE__->has_many(
- "bug_submitters",
- "Debbugs::DB::Result::BugSubmitter",
+ "bug_status_caches",
+ "Debbugs::DB::Result::BugStatusCache",
{ "foreign.bug" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
{ cascade_copy => 0, cascade_delete => 0 },
);
-=head2 bug_vers
+=head2 bug_user_tags
Type: has_many
-Related object: L<Debbugs::DB::Result::BugVer>
+Related object: L<Debbugs::DB::Result::BugUserTag>
=cut
__PACKAGE__->has_many(
- "bug_vers",
- "Debbugs::DB::Result::BugVer",
+ "bug_user_tags",
+ "Debbugs::DB::Result::BugUserTag",
{ "foreign.bug" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
-=head2 bugs_done_by
+=head2 bug_vers
Type: has_many
-Related object: L<Debbugs::DB::Result::BugDoneBy>
+Related object: L<Debbugs::DB::Result::BugVer>
=cut
__PACKAGE__->has_many(
- "bugs_done_by",
- "Debbugs::DB::Result::BugDoneBy",
+ "bug_vers",
+ "Debbugs::DB::Result::BugVer",
{ "foreign.bug" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
-=head2 bugs_merged_merged
+=head2 done
-Type: has_many
+Type: belongs_to
-Related object: L<Debbugs::DB::Result::BugMerged>
+Related object: L<Debbugs::DB::Result::Correspondent>
=cut
-__PACKAGE__->has_many(
- "bugs_merged_merged",
- "Debbugs::DB::Result::BugMerged",
- { "foreign.merged" => "self.id" },
- { cascade_copy => 0, cascade_delete => 0 },
+__PACKAGE__->belongs_to(
+ "done",
+ "Debbugs::DB::Result::Correspondent",
+ { id => "done" },
+ {
+ is_deferrable => 0,
+ join_type => "LEFT",
+ on_delete => "NO ACTION",
+ on_update => "NO ACTION",
+ },
);
+=head2 owner
+
+Type: belongs_to
+
+Related object: L<Debbugs::DB::Result::Correspondent>
+
+=cut
+
+__PACKAGE__->belongs_to(
+ "owner",
+ "Debbugs::DB::Result::Correspondent",
+ { id => "owner" },
+ {
+ is_deferrable => 0,
+ join_type => "LEFT",
+ on_delete => "NO ACTION",
+ on_update => "NO ACTION",
+ },
+);
+
+=head2 severity
-# Created by DBIx::Class::Schema::Loader v0.07025 @ 2013-03-25 18:43:53
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:cPIz8V6KUWZip+5Dvi7+4Q
+Type: belongs_to
+
+Related object: L<Debbugs::DB::Result::Severity>
+
+=cut
+
+__PACKAGE__->belongs_to(
+ "severity",
+ "Debbugs::DB::Result::Severity",
+ { id => "severity" },
+ { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
+);
+
+=head2 submitter
+
+Type: belongs_to
+
+Related object: L<Debbugs::DB::Result::Correspondent>
+
+=cut
+
+__PACKAGE__->belongs_to(
+ "submitter",
+ "Debbugs::DB::Result::Correspondent",
+ { id => "submitter" },
+ {
+ is_deferrable => 0,
+ join_type => "LEFT",
+ on_delete => "NO ACTION",
+ on_update => "NO ACTION",
+ },
+);
+# Created by DBIx::Class::Schema::Loader v0.07045 @ 2016-09-24 14:51:07
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:iaipVETTaokcFNrICfIEAw
+
+__PACKAGE__->many_to_many(tags => 'bug_tags','tag');
+__PACKAGE__->many_to_many(user_tags => 'bug_user_tags','user_tag');
+__PACKAGE__->many_to_many(srcpackages => 'bug_srcpackages','src_pkg');
+__PACKAGE__->many_to_many(binpackages => 'bug_binpackages','bin_pkg');
+__PACKAGE__->many_to_many(affects_binpackages => 'bug_affects_binpackages','bin_pkg');
+__PACKAGE__->many_to_many(affects_srcpackages => 'bug_affects_srcpackages','src_pkg');
+__PACKAGE__->many_to_many(messages => 'bug_messages','message');
+
+sub set_related_packages {
+ my ($self,$relationship,$pkgs,$pkg_cache) = @_;
+
+ my @pkg_ids;
+ if ($relationship =~ /binpackages/) {
+ for my $pkg (@{$pkgs}) {
+ push @pkg_ids,
+ $self->result_source->schema->resultset('BinPkg')->
+ get_bin_pkg_id($pkg);
+ }
+ } elsif ($relationship =~ /srcpackages/) {
+ for my $pkg (@{$pkgs}) {
+ push @pkg_ids,
+ $self->result_source->schema->resultset('SrcPkg')->
+ get_src_pkg_id($pkg);
+ }
+ } else {
+ croak "Unsupported relationship $relationship";
+ }
+ if ($relationship eq 'binpackages') {
+ $self->set_binpackages([map {{id => $_}} @pkg_ids]);
+ } elsif ($relationship eq 'srcpackages') {
+ $self->set_srcpackages([map {{id => $_}} @pkg_ids]);
+ } elsif ($relationship eq 'affects_binpackages') {
+ $self->set_affects_binpackages([map {{id => $_}} @pkg_ids]);
+ } elsif ($relationship eq 'affects_srcpackages') {
+ $self->set_affects_srcpackages([map {{id => $_}} @pkg_ids]);
+ } else {
+ croak "Unsupported relationship $relationship";
+ }
+}
# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;