138 lines
2.4 KiB
Perl
138 lines
2.4 KiB
Perl
package LasTres::PJ;
|
|
|
|
use v5.36.0;
|
|
use strict;
|
|
use warnings;
|
|
|
|
use feature 'signatures';
|
|
|
|
use Scalar::Util qw/blessed/;
|
|
use LasTres::DAO::PJs;
|
|
|
|
my $result_set = LasTres::DAO::PJs->ResultSet;
|
|
|
|
use Moo;
|
|
|
|
has uuid => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has owner => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has full_name => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has short_name => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has nick => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has race => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has team => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has creation_date => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has last_activity => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has experience => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
has equipment => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
sub _coerce_stats($attr) {
|
|
if (blessed($attr) eq 'LasTres::Schema::Result::Stats') {
|
|
return $attr->model;
|
|
}
|
|
}
|
|
|
|
has born_stats => (
|
|
is => 'rw',
|
|
required => 1,
|
|
coerce => \&_coerce_stats,
|
|
);
|
|
|
|
has training_stats => (
|
|
is => 'rw',
|
|
required => 1,
|
|
coerce => \&_coerce_stats,
|
|
);
|
|
|
|
sub _coerce_skills($attr) {
|
|
if (blessed($attr) eq 'LasTres::Schema::Result::SkillLikeList') {
|
|
return $attr->model;
|
|
}
|
|
}
|
|
|
|
has skills => (
|
|
is => 'rw',
|
|
required => 1,
|
|
coerce => \&_coerce_skills,
|
|
);
|
|
|
|
has spells => (
|
|
is => 'rw',
|
|
required => 1,
|
|
coerce => \&_coerce_skills,
|
|
);
|
|
|
|
has inventory => (
|
|
is => 'rw',
|
|
required => 1,
|
|
);
|
|
|
|
sub hash ($self) {
|
|
return {
|
|
uuid => $self->uuid,
|
|
owner => $self->owner,
|
|
full_name => $self->full_name,
|
|
short_name => $self->short_name,
|
|
nick => $self->nick,
|
|
race => $self->race,
|
|
team => $self->team,
|
|
creation_date => $self->creation_date,
|
|
last_activity => $self->last_activity,
|
|
experience => $self->experience,
|
|
equipment => $self->equipment,
|
|
born_stats => $self->born_stats,
|
|
training_stats => $self->training_stats,
|
|
skills => $self->skills,
|
|
spells => $self->spells,
|
|
inventory => $self->inventory,
|
|
|
|
};
|
|
}
|
|
|
|
sub result_set ($self) {
|
|
return $result_set->new( %{ $self->hash } );
|
|
}
|
|
1;
|