package Sietima::Message;
use Moo;
use Sietima::Policy;
use Types::Standard qw(ArrayRef Object);
use Sietima::Types qw(Address AddressFromStr
Subscriber SubscriberFromAddress SubscriberFromStr
EmailMIME);
use Email::Address;
use Sietima::Subscriber;
use Email::MIME;
use namespace::clean;
our $VERSION = '1.1.2';
has mail => (
is => 'ro',
isa => EmailMIME,
required => 1,
);
has from => (
is => 'ro',
isa => Address,
coerce => AddressFromStr,
required => 1,
);
my $subscriber_array = ArrayRef[
Subscriber->plus_coercions(
SubscriberFromStr,
SubscriberFromAddress,
)
];
has to => (
isa => $subscriber_array,
is => 'ro',
coerce => $subscriber_array->coercion,
required => 1,
);
sub envelope ($self) {
return {
from => $self->from,
to => [ map { $_->address } $self->to->@* ],
}
}
1;
__END__