
POST /api/v1/summits Payload * name (required|string|max:50) * start_date (required|date_format:U) * end_date (required_with:start_date|date_format:U|after:start_date) * submission_begin_date (sometimes|date_format:U) * submission_end_date (required_with:submission_begin_date|date_format:U|after:submission_begin_date) * voting_begin_date (sometimes|date_format:U) * voting_end_date (required_with:voting_begin_date|date_format:U|after:voting_begin_date) * selection_begin_date (sometimes|date_format:U) * selection_end_date (required_with:selection_begin_date|date_format:U|after:selection_begin_date) * registration_begin_date (sometimes|date_format:U) * registration_end_date (required_with:registration_begin_date|date_format:U|after:registration_begin_date) * start_showing_venues_date (sometimes|date_format:U|before:start_date) * schedule_start_date (sometimes|date_format:U) * active (sometimes|boolean) * dates_label (sometimes|string) * time_zone_id (required|timezone) check http://php.net/manual/en/timezones.php * external_summit_id (sometimes|string) * available_on_api (sometimes|boolean) * calendar_sync_name (sometimes|string|max:255) * calendar_sync_desc (sometimes|string) * link (sometimes|url) * registration_link (sometimes|url) * max_submission_allowed_per_user (sometimes|integer|min:1) Change-Id: Ia1ff04d728f53a3869724574fad4fee027049f04
224 lines
6.1 KiB
PHP
224 lines
6.1 KiB
PHP
<?php namespace services\model;
|
|
/**
|
|
* Copyright 2015 OpenStack Foundation
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
**/
|
|
use Illuminate\Http\UploadedFile;
|
|
use models\exceptions\EntityNotFoundException;
|
|
use models\exceptions\ValidationException;
|
|
use models\main\File;
|
|
use models\main\Member;
|
|
use models\summit\ConfirmationExternalOrderRequest;
|
|
use models\summit\Summit;
|
|
use models\summit\SummitAttendee;
|
|
use models\summit\SummitEvent;
|
|
use models\summit\SummitEventFeedback;
|
|
use models\summit\SummitScheduleEmptySpot;
|
|
use utils\Filter;
|
|
/**
|
|
* Interface ISummitService
|
|
* @package services\model
|
|
*/
|
|
interface ISummitService
|
|
{
|
|
/**
|
|
* @param Summit $summit
|
|
* @param array $data
|
|
* @return SummitEvent
|
|
*/
|
|
public function addEvent(Summit $summit, array $data);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param int $event_id
|
|
* @param array $data
|
|
* @return SummitEvent
|
|
*/
|
|
public function updateEvent(Summit $summit, $event_id, array $data);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param $event_id
|
|
* @param array $data
|
|
* @return mixed
|
|
*/
|
|
public function publishEvent(Summit $summit, $event_id, array $data);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param $event_id
|
|
* @return mixed
|
|
*/
|
|
public function unPublishEvent(Summit $summit, $event_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param $event_id
|
|
* @return mixed
|
|
*/
|
|
public function deleteEvent(Summit $summit, $event_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param Member $member
|
|
* @param int $event_id
|
|
* @param bool $check_rsvp
|
|
* @return bool
|
|
*/
|
|
public function addEventToMemberSchedule(Summit $summit, Member $member, $event_id, $check_rsvp = true);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param Member $member
|
|
* @param int $event_id
|
|
* @param bool $check_rsvp
|
|
* @return void
|
|
*/
|
|
public function removeEventFromMemberSchedule(Summit $summit, Member $member, $event_id, $check_rsvp = true);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param SummitEvent $event
|
|
* @param array $feedback
|
|
* @return SummitEventFeedback
|
|
*/
|
|
public function addEventFeedback(Summit $summit, SummitEvent $event, array $feedback);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param SummitEvent $event
|
|
* @param array $feedback
|
|
* @return SummitEventFeedback
|
|
*/
|
|
public function updateEventFeedback(Summit $summit, SummitEvent $event, array $feedback);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param null|int $member_id
|
|
* @param null|\DateTime $from_date
|
|
* @param null|int $from_id
|
|
* @param null|int $limit
|
|
* @return array
|
|
*/
|
|
public function getSummitEntityEvents(Summit $summit, $member_id = null, \DateTime $from_date = null, $from_id = null, $limit = 25);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param $external_order_id
|
|
* @return array
|
|
*/
|
|
public function getExternalOrder(Summit $summit, $external_order_id);
|
|
|
|
/**
|
|
* @param ConfirmationExternalOrderRequest $request
|
|
* @return SummitAttendee
|
|
*/
|
|
public function confirmExternalOrderAttendee(ConfirmationExternalOrderRequest $request);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param Member $member
|
|
* @param int $event_id
|
|
* @throws EntityNotFoundException
|
|
*/
|
|
public function removeEventFromMemberFavorites(Summit $summit, Member $member, $event_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param Member $member
|
|
* @param int $event_id
|
|
* @throws ValidationException
|
|
* @throws EntityNotFoundException
|
|
*/
|
|
public function addEventToMemberFavorites(Summit $summit, Member $member, $event_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param Member $member
|
|
* @param $event_id
|
|
* @return bool
|
|
*/
|
|
public function unRSVPEvent(Summit $summit, Member $member, $event_id);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param int $event_id
|
|
* @param UploadedFile $file
|
|
* @param int $max_file_size
|
|
* @throws ValidationException
|
|
* @throws EntityNotFoundException
|
|
* @return File
|
|
*/
|
|
public function addEventAttachment(Summit $summit, $event_id, UploadedFile $file, $max_file_size = 10485760);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param Filter $filter
|
|
* @return SummitScheduleEmptySpot[]
|
|
*/
|
|
public function getSummitScheduleEmptySpots
|
|
(
|
|
Summit $summit,
|
|
Filter $filter
|
|
);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param array $data
|
|
* @throws ValidationException
|
|
* @throws EntityNotFoundException
|
|
* @return bool
|
|
*/
|
|
public function unPublishEvents(Summit $summit, array $data);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param array $data
|
|
* @throws ValidationException
|
|
* @throws EntityNotFoundException
|
|
* @return bool
|
|
*/
|
|
public function updateAndPublishEvents(Summit $summit, array $data);
|
|
|
|
/**
|
|
* @param Summit $summit
|
|
* @param array $data
|
|
* @throws ValidationException
|
|
* @throws EntityNotFoundException
|
|
* @return bool
|
|
*/
|
|
public function updateEvents(Summit $summit, array $data);
|
|
|
|
/**
|
|
* @param array $data
|
|
* @throws ValidationException
|
|
* @throws EntityNotFoundException
|
|
* @return Summit
|
|
*/
|
|
public function addSummit(array $data);
|
|
|
|
/**
|
|
* @param int $summit_id
|
|
* @param array $data
|
|
* @throws ValidationException
|
|
* @throws EntityNotFoundException
|
|
* @return Summit
|
|
*/
|
|
public function updateSummit($summit_id, array $data);
|
|
|
|
/**
|
|
* @param int $summit_id
|
|
* @throws ValidationException
|
|
* @throws EntityNotFoundException
|
|
* @return void
|
|
*/
|
|
public function deleteSummit($summit_id);
|
|
} |