In progress commit

This commit is contained in:
Thomas Bloor 2019-07-02 15:21:01 +01:00
parent 71d4a83400
commit b00e9e838c
19 changed files with 478 additions and 79 deletions

View file

@ -10,76 +10,91 @@ __PACKAGE__->load_components("InflateColumn::DateTime", "FilterColumn");
__PACKAGE__->table("organisations");
__PACKAGE__->add_columns(
id => {
data_type => 'integer',
id => {
data_type => 'integer',
is_auto_increment => 1,
is_nullable => 0,
is_nullable => 0,
},
entity_id => {
data_type => 'integer',
is_nullable => 0,
entity_id => {
data_type => 'integer',
is_nullable => 0,
is_foreign_key => 1,
},
name => {
data_type => 'varchar',
size => 255,
name => {
data_type => 'varchar',
size => 255,
is_nullable => 0,
},
street_name => {
data_type => 'text',
street_name => {
data_type => 'text',
is_nullable => 1,
},
town => {
data_type => 'varchar',
size => 255,
town => {
data_type => 'varchar',
size => 255,
is_nullable => 0,
},
postcode => {
data_type => 'varchar',
size => 16,
postcode => {
data_type => 'varchar',
size => 16,
is_nullable => 1,
},
country => {
data_type => 'varchar',
size => 255,
country => {
data_type => 'varchar',
size => 255,
is_nullable => 1,
},
sector => {
data_type => 'varchar',
size => 1,
sector => {
data_type => 'varchar',
size => 1,
is_nullable => 1,
},
pending => {
data_type => 'boolean',
default => \"false",
pending => {
data_type => 'boolean',
default => \"false",
is_nullable => 0,
},
is_local => {
data_type => 'boolean',
default => undef,
is_local => {
data_type => 'boolean',
default => undef,
is_nullable => 1,
},
is_fair => {
data_type => 'boolean',
default => undef,
is_fair => {
data_type => 'boolean',
default => undef,
is_nullable => 1,
},
submitted_by_id => {
data_type => 'integer',
data_type => 'integer',
is_nullable => 1,
},
latitude => {
data_type => 'decimal',
size => [8,5],
is_nullable => 1,
latitude => {
data_type => 'decimal',
size => [ 8, 5 ],
is_nullable => 1,
default_value => undef,
},
longitude => {
data_type => 'decimal',
size => [8,5],
is_nullable => 1,
longitude => {
data_type => 'decimal',
size => [ 8, 5 ],
is_nullable => 1,
default_value => undef,
},
type_id => {
data_type => 'integer',
is_nullable => 1,
is_foreign_key => 1,
},
social_type_id => {
data_type => 'integer',
is_nullable => 1,
is_foreign_key => 1,
},
is_anchor => {
data_type => 'boolean',
is_nullable => 0,
default_value => \'FALSE',
}
);
__PACKAGE__->set_primary_key('id');
@ -98,32 +113,37 @@ __PACKAGE__->has_many(
);
__PACKAGE__->filter_column(
pending => {
pending => {
filter_to_storage => 'to_bool',
},
is_local => {
is_local => {
filter_to_storage => 'to_bool',
},
is_anchor => {
filter_to_storage => 'to_bool',
}
);
# Only works when calling ->deploy, but atleast helps for tests
sub sqlt_deploy_hook {
my ( $source_instance, $sqlt_table ) = @_;
my ($source_instance, $sqlt_table) = @_;
my $pending_field = $sqlt_table->get_field('pending');
if ( $sqlt_table->schema->translator->producer_type =~ /SQLite$/ ) {
if ($sqlt_table->schema->translator->producer_type =~ /SQLite$/) {
$pending_field->{default_value} = 0;
} else {
}
else {
$pending_field->{default_value} = \"false";
}
}
sub to_bool {
my ( $self, $val ) = @_;
return if ! defined $val;
my ($self, $val) = @_;
return if !defined $val;
my $driver_name = $self->result_source->schema->storage->dbh->{Driver}->{Name};
if ( $driver_name eq 'SQLite' ) {
if ($driver_name eq 'SQLite') {
return $val ? 1 : 0;
} else {
}
else {
return $val ? 'true' : 'false';
}
}