<?php

/*
 * Editor server script for DB table Events
 * Created by http://editor.datatables.net/generator
 */

// DataTables PHP library and database connection
include( "lib/DataTables.php" );

// Alias Editor classes so they are easy to use
use
	DataTables\Editor,
	DataTables\Editor\Field,
	DataTables\Editor\Format,
	DataTables\Editor\Mjoin,
	DataTables\Editor\Options,
	DataTables\Editor\Upload,
	DataTables\Editor\Validate,
	DataTables\Editor\ValidateOptions;

// The following statement can be removed after the first run (i.e. the database
// table has been created). It is a good idea to do this to help improve
// performance.

// Build our Editor instance and process the data coming from _POST
Editor::inst( $db, 'Events', 'eventId' )

	->fields(
	    Field::inst( 'eventId' ),
		Field::inst( 'eventName' )
			->validator( Validate::notEmpty() )
			->validator( Validate::minMaxLen( 3, 80 ) ),
		Field::inst( 'eventDescription' ),
		Field::inst( 'eventStartTime' )
			->validator( Validate::dateFormat( 'Y-m-d H:i:s' ) )
			->getFormatter( Format::datetime( 'Y-m-d H:i:s', 'Y-m-d H:i:s' ) )
			->setFormatter( Format::datetime( 'Y-m-d H:i:s', 'Y-m-d H:i:s' ) ),
		Field::inst( 'eventEndTime' )
			->validator( Validate::dateFormat( 'Y-m-d H:i:s' ) )
			->getFormatter( Format::datetime( 'Y-m-d H:i:s', 'Y-m-d H:i:s' ) )
			->setFormatter( Format::datetime( 'Y-m-d H:i:s', 'Y-m-d H:i:s' ) ),
		Field::inst( 'eventCategory' )
			->validator( Validate::notEmpty() )
			->validator( Validate::maxLen( 49 ) ),
		Field::inst( 'eventImage' ),
		Field::inst( 'eventStatus' ),
		Field::inst( 'eventToken' )
			->set( false )
			->validator( Validate::url() )
			
	)

	    ->join(
	    Mjoin::inst( 'EventResponses' )
	       ->link( 'Events.eventId', 'EventResponses.eventId' )
	      	->fields(
	      	    	Field::inst( 'username' ),
	      	    	Field::inst( 'userPhone' ),
		Field::inst( 'selectedEvent' )
			->validator( Validate::notEmpty() )
			->validator( Validate::minMaxLen( 3, 80 ) )
		
	)
	    )
	    
	    
	       ->join(
        Mjoin::inst( 'EventLocations' )
            ->link( 'Events.eventId', 'EventLocations.eventId' )
            ->fields(
                Field::inst( 'locationId' ),
                Field::inst( 'eventId' ),
                Field::inst( 'locationName' ),
                Field::inst( 'locationMapUrl' )
            )
    )
	->process($_POST)
    ->json();
	






