X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FGruntmaster%2FData%2FResult%2FProblem.pm;h=34c9d876571618c2c04c7cb170473b5249e184e2;hb=be2f7678d7b65c497fe9d65b74b1b5bb4a47b496;hp=5b843919c7250507743fc5d542be7012a138aeb6;hpb=9bb399215eed61555c05f025aedf6dc53f4e977d;p=gruntmaster-data.git diff --git a/lib/Gruntmaster/Data/Result/Problem.pm b/lib/Gruntmaster/Data/Result/Problem.pm index 5b84391..34c9d87 100644 --- a/lib/Gruntmaster/Data/Result/Problem.pm +++ b/lib/Gruntmaster/Data/Result/Problem.pm @@ -6,7 +6,7 @@ package Gruntmaster::Data::Result::Problem; =head1 NAME -Gruntmaster::Data::Result::Problem +Gruntmaster::Data::Result::Problem - List of problems =cut @@ -33,26 +33,36 @@ __PACKAGE__->table("problems"); data_type: 'text' is_nullable: 1 +Full name(s) of problem author(s)/problemsetter(s)/tester(s)/etc + =head2 writer data_type: 'text' is_nullable: 1 +Full name(s) of statement writer(s) (DEPRECATED) + =head2 generator data_type: 'text' is_nullable: 0 +Generator class, without the leading Gruntmaster::Daemon::Generator:: + =head2 judge data_type: 'text' is_nullable: 0 +Judge class, without the leading Gruntmaster::Daemon::Judge:: + =head2 level data_type: 'text' is_nullable: 0 +Problem level, one of beginner, easy, medium, hard + =head2 name data_type: 'text' @@ -63,6 +73,8 @@ __PACKAGE__->table("problems"); data_type: 'integer' is_nullable: 1 +Output limit (in bytes) + =head2 owner data_type: 'text' @@ -80,51 +92,78 @@ __PACKAGE__->table("problems"); data_type: 'text' is_nullable: 0 +Runner class, without the leading Gruntmaster::Daemon::Runner:: + +=head2 solution + + data_type: 'text' + is_nullable: 1 + +Solution (HTML) + =head2 statement data_type: 'text' is_nullable: 0 +Statement (HTML) + =head2 testcnt data_type: 'integer' is_nullable: 0 +Number of tests + =head2 tests data_type: 'text' is_nullable: 1 +JSON array of test values for ::Runner::File + =head2 timeout data_type: 'real' is_nullable: 0 +Time limit (in seconds) + =head2 value data_type: 'integer' - is_nullable: 1 + is_nullable: 0 + +Problem value when used in a contest. =head2 genformat data_type: 'text' is_nullable: 1 +Format (programming language) of the generator if using the Run generator + =head2 gensource data_type: 'text' is_nullable: 1 +Source code of generator if using the Run generator + =head2 verformat data_type: 'text' is_nullable: 1 +Format (programming language) of the verifier if using the Verifier runner + =head2 versource data_type: 'text' is_nullable: 1 +Source code of verifier if using the Verifier runner + =cut __PACKAGE__->add_columns( @@ -150,6 +189,8 @@ __PACKAGE__->add_columns( { data_type => "boolean", default_value => \"false", is_nullable => 0 }, "runner", { data_type => "text", is_nullable => 0 }, + "solution", + { data_type => "text", is_nullable => 1 }, "statement", { data_type => "text", is_nullable => 0 }, "testcnt", @@ -159,7 +200,7 @@ __PACKAGE__->add_columns( "timeout", { data_type => "real", is_nullable => 0 }, "value", - { data_type => "integer", is_nullable => 1 }, + { data_type => "integer", is_nullable => 0 }, "genformat", { data_type => "text", is_nullable => 1 }, "gensource", @@ -244,6 +285,21 @@ __PACKAGE__->belongs_to( { is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" }, ); +=head2 problem_statuses + +Type: has_many + +Related object: L + +=cut + +__PACKAGE__->has_many( + "problem_statuses", + "Gruntmaster::Data::Result::ProblemStatus", + { "foreign.problem" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + =head2 contests Type: many_to_many @@ -255,8 +311,8 @@ Composing rels: L -> contest __PACKAGE__->many_to_many("contests", "contest_problems", "contest"); -# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-05-16 15:03:32 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tvap77v0faSMxFiLu1uggQ +# Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:54:00 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QZHyWOWaPmTm/EQ5M22CGA sub is_private { my ($self, $time) = @_;