diff options
author | Matthew Somerville <matthew@mysociety.org> | 2012-12-14 19:07:08 +0000 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2012-12-19 14:43:26 +0000 |
commit | ddf9dbdbf6486c781ca4a5822614b0b7cee2c062 (patch) | |
tree | 09c12affc3390138b03292d3f90810287b4941d0 /perllib/FixMyStreet/DB/Result/Body.pm | |
parent | da29e8a75eaa92e98807ad89d29d3d1f3c01bc14 (diff) |
Allow bodies to span multiple area IDs, and areas can be covered by more than one body.
Diffstat (limited to 'perllib/FixMyStreet/DB/Result/Body.pm')
-rw-r--r-- | perllib/FixMyStreet/DB/Result/Body.pm | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/perllib/FixMyStreet/DB/Result/Body.pm b/perllib/FixMyStreet/DB/Result/Body.pm index 73d763a6e..a4da74f80 100644 --- a/perllib/FixMyStreet/DB/Result/Body.pm +++ b/perllib/FixMyStreet/DB/Result/Body.pm @@ -18,8 +18,6 @@ __PACKAGE__->add_columns( is_nullable => 0, sequence => "body_id_seq", }, - "area_id", - { data_type => "integer", is_nullable => 0 }, "endpoint", { data_type => "text", is_nullable => 1 }, "jurisdiction", @@ -40,7 +38,12 @@ __PACKAGE__->add_columns( { data_type => "text", is_nullable => 0 }, ); __PACKAGE__->set_primary_key("id"); -__PACKAGE__->add_unique_constraint("body_area_id_key", ["area_id"]); +__PACKAGE__->has_many( + "body_areas", + "FixMyStreet::DB::Result::BodyArea", + { "foreign.body_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); __PACKAGE__->belongs_to( "comment_user", "FixMyStreet::DB::Result::User", @@ -66,8 +69,8 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-14 09:23:59 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tvTHtIa0GrtptadZYHEM1Q +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-14 17:54:33 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:2Z3gCosNomCTcjrwWy/RNA sub url { my ( $self, $c ) = @_; @@ -75,4 +78,10 @@ sub url { return $c->uri_for( '/reports/' . $c->cobrand->short_name( $self ) ); } +sub areas { + my $self = shift; + my %ids = map { $_->area_id => 1 } $self->body_areas->all; + return \%ids; +} + 1; |