<database>
	<name>*dbname*</name>
	<create>true</create>
	<overwrite>false</overwrite>
	<charset>utf8</charset>
	<table>
		<name>*dbprefix*external_mounts</name>
		<declaration>
			<field>
				<name>mount_id</name>
				<type>integer</type>
				<default>0</default>
				<notnull>true</notnull>
				<autoincrement>1</autoincrement>
				<length>6</length>
			</field>
			<field>
				<name>mount_point</name>
				<type>text</type>
				<length>128</length>
				<notnull>true</notnull>
			</field>
			<field>
				<name>storage_backend</name>
				<type>text</type>
				<length>64</length>
				<notnull>true</notnull>
			</field>
			<field>
				<name>auth_backend</name>
				<type>text</type>
				<length>64</length>
				<notnull>true</notnull>
			</field>
			<field>
				<name>priority</name>
				<type>integer</type>
				<default>100</default>
				<length>4</length>
				<notnull>true</notnull>
			</field>
			<!-- admin = 1, personal = 2-->
			<field>
				<name>type</name>
				<type>integer</type>
				<length>4</length>
				<notnull>true</notnull>
			</field>
		</declaration>
	</table>
	<table>
		<name>*dbprefix*external_applicable</name>
		<declaration>
			<field>
				<name>applicable_id</name>
				<type>integer</type>
				<default>0</default>
				<notnull>true</notnull>
				<autoincrement>1</autoincrement>
				<length>6</length>
			</field>
			<field>
				<!--foreign key: external_mounts.mount_id-->
				<name>mount_id</name>
				<type>integer</type>
				<notnull>true</notnull>
				<length>6</length>
			</field>
			<field>
				<!-- possible mount types: global = 1, group = 2, user = 3 -->
				<name>type</name>
				<type>integer</type>
				<length>4</length>
				<notnull>true</notnull>
			</field>
			<field>
				<!-- user_id, group_id or null for global mounts -->
				<name>value</name>
				<type>text</type>
				<length>64</length>
			</field>

			<index>
				<name>applicable_mount</name>
				<field>
					<name>mount_id</name>
					<sorting>ascending</sorting>
				</field>
			</index>
			<index>
				<name>applicable_type_value</name>
				<field>
					<name>type</name>
					<sorting>ascending</sorting>
				</field>
				<field>
					<name>value</name>
					<sorting>ascending</sorting>
				</field>
			</index>
			<index>
				<name>applicable_type_value_mount</name>
				<unique>true</unique>
				<field>
					<name>type</name>
					<sorting>ascending</sorting>
				</field>
				<field>
					<name>value</name>
					<sorting>ascending</sorting>
				</field>
				<field>
					<name>mount_id</name>
					<sorting>ascending</sorting>
				</field>
			</index>
		</declaration>
	</table>

	<table>
		<name>*dbprefix*external_config</name>
		<declaration>
			<field>
				<name>config_id</name>
				<type>integer</type>
				<default>0</default>
				<notnull>true</notnull>
				<autoincrement>1</autoincrement>
				<length>6</length>
			</field>
			<field>
				<!--foreign key: external_mounts.mount_id-->
				<name>mount_id</name>
				<type>integer</type>
				<notnull>true</notnull>
				<length>6</length>
			</field>
			<field>
				<name>key</name>
				<type>text</type>
				<notnull>true</notnull>
				<length>64</length>
			</field>
			<field>
				<name>value</name>
				<type>text</type>
				<notnull>false</notnull>
				<length>4096</length>
			</field>

			<index>
				<name>config_mount</name>
				<field>
					<name>mount_id</name>
					<sorting>ascending</sorting>
				</field>
			</index>
			<index>
				<name>config_mount_key</name>
				<unique>true</unique>
				<field>
					<name>mount_id</name>
					<sorting>ascending</sorting>
				</field>
				<field>
					<name>key</name>
					<sorting>ascending</sorting>
				</field>
			</index>
		</declaration>
	</table>

	<table>
		<name>*dbprefix*external_options</name>
		<declaration>
			<field>
				<name>option_id</name>
				<type>integer</type>
				<default>0</default>
				<notnull>true</notnull>
				<autoincrement>1</autoincrement>
				<length>6</length>
			</field>
			<field>
				<!--foreign key: external_mounts.mount_id-->
				<name>mount_id</name>
				<type>integer</type>
				<notnull>true</notnull>
				<length>6</length>
			</field>
			<field>
				<name>key</name>
				<type>text</type>
				<notnull>true</notnull>
				<length>64</length>
			</field>
			<field>
				<name>value</name>
				<type>text</type>
				<notnull>true</notnull>
				<length>256</length>
			</field>

			<index>
				<name>option_mount</name>
				<field>
					<name>mount_id</name>
					<sorting>ascending</sorting>
				</field>
			</index>
			<index>
				<name>option_mount_key</name>
				<unique>true</unique>
				<field>
					<name>mount_id</name>
					<sorting>ascending</sorting>
				</field>
				<field>
					<name>key</name>
					<sorting>ascending</sorting>
				</field>
			</index>
		</declaration>
	</table>
</database>
