93 lines
1.9 KiB
Perl
93 lines
1.9 KiB
Perl
package Pear::LocalLoop::Schema::Result::Feedback;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use base 'DBIx::Class::Core';
|
|
|
|
__PACKAGE__->table("feedback");
|
|
|
|
__PACKAGE__->load_components(
|
|
qw/
|
|
InflateColumn::DateTime
|
|
TimeStamp
|
|
FilterColumn
|
|
/
|
|
);
|
|
|
|
__PACKAGE__->add_columns(
|
|
"id",
|
|
{
|
|
data_type => "integer",
|
|
is_auto_increment => 1,
|
|
is_nullable => 0
|
|
},
|
|
"user_id" => {
|
|
data_type => "integer",
|
|
is_foreign_key => 1,
|
|
is_nullable => 0,
|
|
},
|
|
"submitted_at" => {
|
|
data_type => "datetime",
|
|
is_nullable => 0,
|
|
set_on_create => 1,
|
|
},
|
|
"feedbacktext" => {
|
|
data_type => "text",
|
|
is_nullable => 0,
|
|
},
|
|
"app_name" => {
|
|
data_type => "varchar",
|
|
size => 255,
|
|
is_nullable => 0,
|
|
},
|
|
"package_name" => {
|
|
data_type => "varchar",
|
|
size => 255,
|
|
is_nullable => 0,
|
|
},
|
|
"version_code" => {
|
|
data_type => "varchar",
|
|
size => 255,
|
|
is_nullable => 0,
|
|
},
|
|
"version_number" => {
|
|
data_type => "varchar",
|
|
size => 255,
|
|
is_nullable => 0,
|
|
},
|
|
"actioned" => {
|
|
data_type => "boolean",
|
|
default_value => \"false",
|
|
is_nullable => 0,
|
|
},
|
|
);
|
|
|
|
__PACKAGE__->set_primary_key("id");
|
|
|
|
__PACKAGE__->belongs_to(
|
|
"user",
|
|
"Pear::LocalLoop::Schema::Result::User",
|
|
{ id => "user_id" },
|
|
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
|
|
);
|
|
|
|
__PACKAGE__->filter_column(
|
|
actioned => {
|
|
filter_to_storage => 'to_bool',
|
|
}
|
|
);
|
|
|
|
sub to_bool {
|
|
my ( $self, $val ) = @_;
|
|
my $driver_name =
|
|
$self->result_source->schema->storage->dbh->{Driver}->{Name};
|
|
if ( $driver_name eq 'SQLite' ) {
|
|
return $val ? 1 : 0;
|
|
}
|
|
else {
|
|
return $val ? 'true' : 'false';
|
|
}
|
|
}
|
|
|
|
1;
|