2017-02-24 19:27:43 +00:00
package Pear::LocalLoop::Schema::Result::Transaction ;
use strict ;
use warnings ;
use base 'DBIx::Class::Core' ;
2017-04-21 19:54:28 +01:00
__PACKAGE__ - > load_components ( qw /
InflateColumn:: DateTime
2017-04-21 22:12:53 +01:00
TimeStamp
2017-04-21 19:54:28 +01:00
/ ) ;
2017-02-24 19:27:43 +00:00
2017-04-21 22:12:53 +01:00
__PACKAGE__ - > table ( "transactions" ) ;
2017-02-24 19:27:43 +00:00
__PACKAGE__ - > add_columns (
2017-04-21 22:12:53 +01: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" = > {
2017-09-13 15:23:48 +01:00
data_type = > "numeric" ,
size = > [ 100 , 0 ] ,
2017-04-21 22:12:53 +01:00
is_nullable = > 0 ,
} ,
"proof_image" = > {
2017-04-21 19:54:28 +01:00
data_type = > "text" ,
2017-08-31 19:03:49 +01:00
is_nullable = > 1 ,
2017-04-21 19:54:28 +01:00
} ,
2017-04-21 22:12:53 +01:00
"submitted_at" = > {
data_type = > "datetime" ,
is_nullable = > 0 ,
set_on_create = > 1 ,
} ,
2017-08-14 11:15:33 +01:00
"purchase_time" = > {
data_type = > "datetime" ,
2017-08-14 12:45:54 +01:00
timezone = > "UTC" ,
2017-08-14 11:15:33 +01:00
is_nullable = > 0 ,
set_on_create = > 1 ,
} ,
2018-03-01 17:08:30 +00:00
"essential" = > {
data_type = > "boolean" ,
default_value = > \ "false" ,
is_nullable = > 0 ,
} ,
2017-09-21 17:25:55 +01:00
distance = > {
data_type = > 'numeric' ,
size = > [ 15 ] ,
is_nullable = > 1 ,
} ,
2017-02-24 19:27:43 +00:00
) ;
2017-04-21 22:12:53 +01:00
__PACKAGE__ - > set_primary_key ( "id" ) ;
2017-02-24 19:27:43 +00:00
__PACKAGE__ - > belongs_to (
2017-04-21 22:12:53 +01:00
"buyer" ,
2017-08-31 12:30:52 +01:00
"Pear::LocalLoop::Schema::Result::Entity" ,
2017-04-21 22:12:53 +01: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 22:12:53 +01:00
"seller" ,
2017-08-31 12:30:52 +01:00
"Pear::LocalLoop::Schema::Result::Entity" ,
2017-04-21 22:12:53 +01: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" ,
) ;
2018-03-02 16:32:28 +00:00
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 ;