
/**
 */
namespace _zeitbild.frontend_web.type
{
	
	/**
	 */
	export enum enum_access_level {
		none,
		view,
		edit,
		admin
	}
	
	
	/**
	 */
	export type user_id = int;
	
	
	/**
	 */
	export type user_object = {
		name : string;
		email_address : (
			null
			|
			string
		);
	};
	
	
	/**
	 */
	export type event_object = {
		name : string;
		begin : lib_plankton.pit.type_datetime;
		end : (
			null
			|
			lib_plankton.pit.type_datetime
		);
		location : (
			null
			|
			string
		);
		description : (
			null
			|
			string
		);
	};
	
	
	/**
	 */
	export type local_resource_event_id = int;
	
	
	/**
	 */
	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;
		access : {
			default_level : enum_access_level;
			attributed : lib_plankton.map.type_map<
				user_id,
				enum_access_level
			>;
		};
		resource : resource_object;
	};
	
}
