
/**
 */
namespace _zeitbild.type
{
	
	/**
	 */
	export type role = (
		"admin"
		|
		"editor"
		|
		"viewer"
	);
	
	
	/**
	 */
	export type user_id = int;
	
	
	/**
	 */
	export type user_object = {
		name : string;
		email_address : (
			null
			|
			string
		);
	};
	
	
	/**
	 */
	export type event_object = {
		name : string;
		begin : _zeitbild.helpers.type_datetime;
		end : (
			null
			|
			_zeitbild.helpers.type_datetime
		);
		location : (
			null
			|
			string
		);
		description : (
			null
			|
			string
		);
	};
	
	
	/**
	 */
	export type resource_id = int;
	
	
	/**
	 */
	export type resource_object = (
		{
			kind : "local";
			data : {
				events : Array<
					event_object
				>;
			};
		}
		|
		{
			kind : "caldav";
			data : {
				read_only : boolean;
				url : string;
			};
		}
	);
	
	
	/**
	 */
	export type calendar_id = int;
	
	
	/**
	 */
	export type calendar_object = {
		name : string;
		public : boolean;
		members : Array<
			{
				user_id : user_id;
				role : role;
			}
		>;
		// resource : resource_object;
		resource_id : resource_id;
	};
	
}
