From 736ffb89cf1009bfa214c02f246a145364b00f2c Mon Sep 17 00:00:00 2001 From: Tom Bloor Date: Thu, 31 Aug 2017 12:16:38 +0100 Subject: [PATCH] Added entity table --- lib/Pear/LocalLoop/Schema/Result/Entity.pm | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lib/Pear/LocalLoop/Schema/Result/Entity.pm diff --git a/lib/Pear/LocalLoop/Schema/Result/Entity.pm b/lib/Pear/LocalLoop/Schema/Result/Entity.pm new file mode 100644 index 0000000..121d560 --- /dev/null +++ b/lib/Pear/LocalLoop/Schema/Result/Entity.pm @@ -0,0 +1,54 @@ +package Pear::LocalLoop::Schema::Result::Entity; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +__PACKAGE__->table("entities"); + +__PACKAGE__->add_columns( + "id" => { + data_type => "integer", + is_auto_increment => 1, + is_nullable => 0, + }, + "type" => { + data_type => "varchar", + size => 255, + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->might_have( + "customer", + "Pear::LocalLoop::Schema::Result::Customer" => "entity_id", +); + +__PACKAGE__->might_have( + "organisation", + "Pear::LocalLoop::Schema::Result::Organisation" => "entity_id", +); + +__PACKAGE__->might_have( + "user", + "Pear::LocalLoop::Schema::Result::User" => "entity_id", +); + +__PACKAGE__->has_many( + "purchases", + "Pear::LocalLoop::Schema::Result::Transaction", + { "foreign.buyer_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +__PACKAGE__->has_many( + "sales", + "Pear::LocalLoop::Schema::Result::Transaction", + { "foreign.seller_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +1;