An API based availability calendar for Laravel 4.2
Require Carbon\Carbon but already supplied by Laravel 4.2
composer require anzware/avail
run php artisan migrate --package="anzware/avail"
avail_calendars
$table->bigIncrements('calendar_id');
$table->string('calendar_name', 255);
$table->string('status', 15);
$table->timestamps();
avail_bookings
$table->bigIncrements('booking_id');
$table->bigInteger('calendar_id');
$table->date('calendar_date');
$table->bigInteger('state_id');
// external_booking_ids could be integer or string depending on external id data type
// assuming string as data type for good measure
$table->string('external_booking_id', 255)->nullable();
$table->timestamps();
Use external_booking_id to link your actual booking ID
avail_states
$table->bigIncrements('state_id');
$table->string('state', 100);
$table->tinyInteger('state_order')->nullable()->default(0);
$table->timestamps();
Getting calendar with data
GET /avail/api/get-calendar-with-data
Parameters
integer take
(optional) - the amount of months needed to be displayed (default: 3)
integer page
(optional) - indicate the pagination starting from current month (default: 1)
integer calendar_id
(required) - the calendar ID
GET /avail/api/get-calendar
Parameters
integer calendar_id
(optional) - the calendar ID
GET /avail/api/get-state
Parameters
integer state_id
(optional) - the state ID
POST /avail/api/post-new-calendar
Parameters
string name
(required) - the calendar name
string status
(required) - calendar status ('active', 'inactive')
POST /avail/api/post-update-calendar
Parameters
integer calendar_id
(required) - the calendar ID
string name
(optional) - the calendar name
string status
(optional) - calendar status ('active', 'inactive')
POST /avail/api/post-new-state
Parameters
integer calendar_id
(required) - the calendar ID
string name
(optional) - the calendar name
string status
(optional) - calendar status ('active', 'inactive')
POST /avail/api/post-update-state
Parameters
integer state_id
(required) - the state ID
string state
(optional) - the name of the state
integer state_order
(optional) - the order of the state, for displaying purpose
POST /avail/api/post-new-booking
Parameters
integer calendar_id
(required) - the calendar ID
integer state_id
(required) - the state ID
array dates
(required) - selected dates
string external_booking_id
(optional) - external booking ID (your actual booking detail ID)
POST /avail/api/post-release-booking
Parameters
integer calendar_id
(required) - the calendar ID
array dates
(required) - selected dates