2023-12-22 16:18:18 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* ActivityPub Object of type Event.
|
|
|
|
*
|
|
|
|
* @package activity-event-transformers
|
|
|
|
* @license AGPL-3.0-or-later
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Activitypub\Activity;
|
|
|
|
|
|
|
|
use Activitypub\Activity\Base_Object;
|
|
|
|
|
|
|
|
use function Activitypub\snake_to_camel_case;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Event is an implementation of one of the Activity Streams Event object type.
|
|
|
|
*
|
|
|
|
* This class contains extra keys as used by Mobilizon to ensure compatibility.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-event
|
|
|
|
*/
|
|
|
|
class Event extends Base_Object {
|
|
|
|
// todo maybe rename to mobilizon event?
|
|
|
|
const REPLIES_MODERATION_OPTION_TYPES = array( 'allow_all', 'closed' );
|
|
|
|
const JOIN_MODE_TYPES = array( 'free', 'restricted', 'external' ); // amd 'invite', but not used by mobilizon atm
|
|
|
|
const ICAL_EVENT_STATUS_TYPES = array( 'TENTATIVE', 'CONFIRMED', 'CANCELLED' );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Event is an implementation of one of the
|
|
|
|
* Activity Streams
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $type = 'Event';
|
|
|
|
|
|
|
|
protected $name;
|
|
|
|
|
|
|
|
protected $contacts;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Extension invented by PeerTube whether comments/replies are <enabled>
|
|
|
|
* Mobilizon also implemented this as a fallback to their own
|
|
|
|
* repliesModerationOption.
|
|
|
|
*
|
|
|
|
* @context https://joinpeertube.org/ns#commentsEnabled
|
|
|
|
* @see https://docs.joinpeertube.org/api/activitypub#video
|
|
|
|
* @see https://docs.joinmobilizon.org/contribute/activity_pub/
|
|
|
|
* @var bool|null
|
|
|
|
*/
|
|
|
|
protected $comments_enabled;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://joinmobilizon.org/ns#timezone
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $timezone;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://joinmobilizon.org/ns#repliesModerationOption
|
|
|
|
* @see https://docs.joinmobilizon.org/contribute/activity_pub/#repliesmoderation
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $replies_moderation_option;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://joinmobilizon.org/ns#anonymousParticipationEnabled
|
|
|
|
* @see https://docs.joinmobilizon.org/contribute/activity_pub/#anonymousparticipationenabled
|
|
|
|
* @var bool
|
|
|
|
*/
|
|
|
|
protected $anonymous_participation_enabled;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://schema.org/category
|
|
|
|
* @var enum
|
|
|
|
*/
|
|
|
|
protected $category;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://schema.org/inLanguage
|
|
|
|
* @var
|
|
|
|
*/
|
|
|
|
protected $in_language;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://joinmobilizon.org/ns#isOnline
|
|
|
|
* @var bool
|
|
|
|
*/
|
|
|
|
protected $is_online;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://www.w3.org/2002/12/cal/ical#status
|
|
|
|
* @var enum
|
|
|
|
*/
|
|
|
|
protected $status;
|
|
|
|
|
2023-12-22 19:07:44 +01:00
|
|
|
/**
|
|
|
|
* TODO this seems to not be a default property of an Object but needed by mobilizon TODO:
|
|
|
|
*/
|
|
|
|
protected $actor;
|
|
|
|
|
|
|
|
|
2023-12-22 16:18:18 +01:00
|
|
|
/**
|
|
|
|
* @context https://joinmobilizon.org/ns#externalParticipationUrl
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $external_participation_url;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://joinmobilizon.org/ns#joinMode
|
|
|
|
* @see https://docs.joinmobilizon.org/contribute/activity_pub/#joinmode
|
|
|
|
* @var
|
|
|
|
*/
|
|
|
|
protected $join_mode;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://joinmobilizon.org/ns#participantCount
|
|
|
|
* @var int
|
|
|
|
*/
|
|
|
|
protected $participant_count;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://schema.org/maximumAttendeeCapacity
|
|
|
|
* @see https://docs.joinmobilizon.org/contribute/activity_pub/#maximumattendeecapacity
|
|
|
|
* @var int
|
|
|
|
*/
|
|
|
|
protected $maximum_attendee_capacity;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @context https://schema.org/remainingAttendeeCapacity
|
|
|
|
* @see https://docs.joinmobilizon.org/contribute/activity_pub/#remainignattendeecapacity
|
|
|
|
* @var int
|
|
|
|
*/
|
|
|
|
protected $remaining_attendee_capacity;
|
|
|
|
}
|