This repository has been archived on 2023-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
Foodloop-Server/lib/Pear/LocalLoop/Schema/Result/Transaction.pm

107 lines
2.2 KiB
Perl
Raw Permalink Normal View History

2017-02-24 19:27:43 +00:00
package Pear::LocalLoop::Schema::Result::Transaction;
use strict;
use warnings;
use base 'DBIx::Class::Core';
__PACKAGE__->load_components(qw/
InflateColumn::DateTime
2017-04-21 21:12:53 +00:00
TimeStamp
/);
2017-02-24 19:27:43 +00:00
2017-04-21 21:12:53 +00:00
__PACKAGE__->table("transactions");
2017-02-24 19:27:43 +00:00
__PACKAGE__->add_columns(
2017-04-21 21:12:53 +00:00
"id" => {
data_type => "integer",
is_auto_increment => 1,
is_nullable => 0,
},
"buyer_id" => {
data_type => "integer",
is_foreign_key => 1,
is_nullable => 0,
},
"seller_id" => {
data_type => "integer",
is_foreign_key => 1,
is_nullable => 0,
},
"value" => {
data_type => "numeric",
size => [ 100, 0 ],
2017-04-21 21:12:53 +00:00
is_nullable => 0,
},
"proof_image" => {
data_type => "text",
2017-08-31 18:03:49 +00:00
is_nullable => 1,
},
2017-04-21 21:12:53 +00:00
"submitted_at" => {
data_type => "datetime",
is_nullable => 0,
set_on_create => 1,
},
"purchase_time" => {
data_type => "datetime",
2017-08-14 11:45:54 +00:00
timezone => "UTC",
is_nullable => 0,
set_on_create => 1,
},
"essential" => {
data_type => "boolean",
default_value => \"false",
is_nullable => 0,
},
2017-09-21 16:25:55 +00:00
distance => {
data_type => 'numeric',
size => [15],
is_nullable => 1,
},
2017-02-24 19:27:43 +00:00
);
2017-04-21 21:12:53 +00:00
__PACKAGE__->set_primary_key("id");
2017-02-24 19:27:43 +00:00
__PACKAGE__->belongs_to(
2017-04-21 21:12:53 +00:00
"buyer",
2017-08-31 11:30:52 +00:00
"Pear::LocalLoop::Schema::Result::Entity",
2017-04-21 21:12:53 +00:00
{ id => "buyer_id" },
2017-02-24 19:27:43 +00:00
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
);
__PACKAGE__->belongs_to(
2017-04-21 21:12:53 +00:00
"seller",
2017-08-31 11:30:52 +00:00
"Pear::LocalLoop::Schema::Result::Entity",
2017-04-21 21:12:53 +00:00
{ id => "seller_id" },
2017-02-24 19:27:43 +00:00
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
);
2018-01-11 14:00:20 +00:00
__PACKAGE__->might_have(
"category",
"Pear::LocalLoop::Schema::Result::TransactionCategory" => "transaction_id",
);
2019-06-28 14:23:18 +00:00
__PACKAGE__->has_one(
"meta",
"Pear::LocalLoop::Schema::Result::TransactionMeta",
{ 'foreign.transaction_id' => 'self.id' },
);
2019-07-03 16:36:36 +00:00
__PACKAGE__->has_many(
"external_reference",
"Pear::LocalLoop::Schema::Result::TransactionExternal",
{ 'foreign.transaction_id' => 'self.id' },
);
sub sqlt_deploy_hook {
my ( $source_instance, $sqlt_table ) = @_;
my $pending_field = $sqlt_table->get_field('essential');
if ( $sqlt_table->schema->translator->producer_type =~ /SQLite$/ ) {
$pending_field->{default_value} = 0;
} else {
$pending_field->{default_value} = \"false";
}
}
2017-02-24 19:27:43 +00:00
1;