package WoW::Armory::Class::Guild; use strict; use warnings; use WoW::Armory::Class::Character; use WoW::Armory::Class::Time; ######################################################################## package WoW::Armory::Class::Guild::News; use base 'WoW::Armory::Class'; use constant FIELDS => [qw(character itemId timestamp type)]; use constant BLESSED_FIELDS => { achievement => 'WoW::Armory::Class::Character::Feed::Achievement', }; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild::Members::Character; use base 'WoW::Armory::Class'; use constant FIELDS => [qw( achievementPoints battlegroup class gender guild level name race realm thumbnail )]; use constant BLESSED_FIELDS => { spec => 'WoW::Armory::Class::Character::Talents::Spec', }; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild::Members; use base 'WoW::Armory::Class'; use constant FIELDS => [qw(rank)]; use constant BLESSED_FIELDS => { character => 'WoW::Armory::Class::Guild::Members::Character', }; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild::Emblem; use base 'WoW::Armory::Class'; use constant FIELDS => [qw(backgroundColor border borderColor icon iconColor)]; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild::Challenge::Realm; use base 'WoW::Armory::Class'; use constant FIELDS => [qw(battlegroup locale name slug timezone)]; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild::Challenge::Map; use base 'WoW::Armory::Class'; use constant FIELDS => [qw(hasChallengeMode id name slug)]; use constant BLESSED_FIELDS => { bronzeCriteria => 'WoW::Armory::Class::Time', goldCriteria => 'WoW::Armory::Class::Time', silverCriteria => 'WoW::Armory::Class::Time', }; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild::Challenge::Groups::Members; use base 'WoW::Armory::Class'; use constant BLESSED_FIELDS => { character => 'WoW::Armory::Class::Guild::Members::Character', spec => 'WoW::Armory::Class::Character::Talents::Spec', }; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild::Challenge::Groups; use base 'WoW::Armory::Class'; use constant FIELDS => [qw(date faction isRecurring medal ranking)]; use constant BLESSED_FIELDS => { guild => 'WoW::Armory::Class::Character::Guild', time => 'WoW::Armory::Class::Time', }; use constant LIST_FIELDS => { members => 'WoW::Armory::Class::Guild::Challenge::Groups::Members', }; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild::Challenge; use base 'WoW::Armory::Class'; use constant BLESSED_FIELDS => { map => 'WoW::Armory::Class::Guild::Challenge::Map', realm => 'WoW::Armory::Class::Guild::Challenge::Realm', }; use constant LIST_FIELDS => { groups => 'WoW::Armory::Class::Guild::Challenge::Groups', }; __PACKAGE__->mk_accessors; ######################################################################## package WoW::Armory::Class::Guild; use base 'WoW::Armory::Class'; use constant FIELDS => [qw( achievementPoints battlegroup lastModified level name realm side )]; use constant BLESSED_FIELDS => { achievements => 'WoW::Armory::Class::Character::Achievements', emblem => 'WoW::Armory::Class::Guild::Emblem', }; use constant LIST_FIELDS => { challenge => 'WoW::Armory::Class::Guild::Challenge', members => 'WoW::Armory::Class::Guild::Members', news => 'WoW::Armory::Class::Guild::News', }; __PACKAGE__->mk_accessors; 1;