aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/Open311/Endpoint/Service/Request/Update.pm
blob: b881af9cec21a9e678d9b4b947a3c3ee013ab62e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package Open311::Endpoint::Service::Request::Update;
use Moo;
use Types::Standard ':all';
use namespace::clean;

sub BUILDARGS {
    my ($class, %args) = @_;
    my $service_request = delete $args{service_request};

    if (! $args{status}) {
        $args{status} = $service_request->status;
    }

    return \%args;
}

has update_id => (
    is => 'ro',
    isa => Maybe[Str],
    predicate => 1,
);

has service_request_id => (
    is => 'ro',
    isa => Maybe[Str],
    predicate => 1,
);

has token => (
    is => 'ro',
    isa => Maybe[Str],
    predicate => 1,
);

has status => (
    is => 'ro',
    isa => Enum[qw/ open closed /],
);

has description => (
    is => 'ro',
    isa => Maybe[Str],
);

has media_url => (
    is => 'ro',
    isa => Str,
    default => sub { '' },
);

has updated_datetime => (
    is => 'ro',
    isa => InstanceOf['DateTime'],
    default => sub { DateTime->now() },
);

1;