package Finance::Alpaca::Struct::Watchlist 0.9902 { use strictures 2; use feature 'signatures'; no warnings 'experimental::signatures'; # use Type::Library 0.008 -base, -declare => qw[Watchlist]; use Type::Utils; use Types::Standard qw[ArrayRef Ref Str]; use Types::TypeTiny 0.004 StringLike => { -as => "Stringable" }; class_type Watchlist, { class => __PACKAGE__ }; coerce( Watchlist, from Ref() => __PACKAGE__ . q[->new($_)] ); # use Moo; use Types::UUID; use lib './lib'; use Finance::Alpaca::Struct::Asset qw[Asset]; use Finance::Alpaca::Types; has [qw[account_id id ]] => ( is => 'ro', isa => Uuid, required => 1 ); has [qw[created_at updated_at]] => ( is => 'ro', isa => Timestamp, required => 1, coerce => 1 ); has name => ( is => 'ro', isa => Str, required => 1 ); has assets => ( is => 'ro', isa => ArrayRef [Asset], coerce => 1, predicate => 1 ); } 1; __END__ =encoding utf-8 =head1 NAME Finance::Alpaca::Struct::Watchlist - A Single Watchlist Object =head1 SYNOPSIS use Finance::Alpaca; my @watchlists = Finance::Alpaca->new( ... )->watchlists; =head1 DESCRIPTION The assets API provides CRUD operation for the account’s watchlist. An account can have multiple watchlists and each is uniquely identified by C<id> but can also be addressed by user-defined C<name>. Each watchlist is an ordered list of L<assets|Finance::Alpaca::Struct::Asset>. =head1 Properties The following properties are contained in the object. for my $asset ($watchlist->assets()) { say $asset->symbol; } =over =item C<id> - Watchlist ID (UUID) =item C<created_at> - Timestamp as a Time::Moment object =item C<updated_at> - Timestamp as a Time::Moment object =item C<name> - User-defined watchlist name (up to C<64> characters) =item C<account_id> - Account ID (UUID) =item C<assets> - The content of this watchlist in the order as registered by the client =back =head1 LICENSE Copyright (C) Sanko Robinson. This library is free software; you can redistribute it and/or modify it under the terms found in the Artistic License 2. Other copyrights, terms, and conditions may apply to data transmitted through this module. =head1 AUTHOR Sanko Robinson E<lt>sanko@cpan.orgE<gt> =cut # https://alpaca.markets/docs/api-documentation/api-v2/watchlist/#watchlist-entity