<?xml version="1.0" encoding="UTF-8"?>
<fieldmapper
	xmlns="http://opensrf.org/xmlns/opensrf"
	xmlns:cdbi="http://opensrf.org/xmlns/opensrf/cdbi"
	xmlns:database="http://opensrf.org/xmlns/opensrf/database"
	xmlns:perl="http://opensrf.org/xmlns/opensrf/perl"
	xmlns:javascript="http://opensrf.org/xmlns/opensrf/javascript"
	xmlns:c="http://opensrf.org/xmlns/opensrf/c">

	<classes>
		<!-- template class definition -->
		<!--
		<class
			id=""
			perl:class=""
			cdbi:class=""
			javascript:class="">
	
			<database:table rdbms="Pg">
				<database:name></database:name>
				<database:sequence></database:sequence>
			</database:table>
			<database:table rdbms="MySQL">
				<database:name></database:name>
			</database:table>
	
			<javascript:superclass>Fieldmapper</javascript:superclass>
			<perl:superclass>Fieldmapper</perl:superclass>
			<cdbi:superclass>OpenILS::Storage::CDBI</cdbi:superclass>
			
			<fields>
				<field name="" datatype="" database:primary="" database:required="" default="" database:default=""/>
			</fields>
			
			<links>
				<link field="" source="" javascript:list="" type=""/>
			</links>
	
		</class>
		-->
	
		<class
			id="asvr"
			virtual="0"
			perl:class="Fieldmapper::action::survey_response"
			cdbi:class="action::survey_response"
			javascript:class="asvr"
			c:class="asvr">
			<database:table rdbms="Pg">
				<database:name>action.survey_response</database:name>
				<database:sequence>action.survey_response_id_seq</database:sequence>
			</database:table>
			<database:table rdbms="MySQL">
				<database:name>action_survey_response</database:name>
			</database:table>
	
			<javascript:superclass>Fieldmapper</javascript:superclass>
			<perl:superclass>Fieldmapper</perl:superclass>
			<cdbi:superclass>OpenILS::Storage::CDBI</cdbi:superclass>
			
			<fields>
				<field
					name="id"
					datatype="int"
					database:primary="true" />
					
				<field
					name="survey"
					datatype="int"
					database:required="true" />

				<field
					name="question"
					datatype="int"
					database:required="true" />

				<field
					name="answer"
					datatype="int"
					database:required="true" />

				<field
					name="usr"
					datatype="int"
					database:required="true" />

				<field
					name="response_group_id"
					datatype="int"
					database:required="true" />

				<field
					name="answser_date"
					datatype="timestamp"
					database:required="true" />

				<field
					name="effective_date"
					datatype="timestamp"
					database:required="true" />

			</fields>

			<links>
				<link field="survey" source="asv" type="has_a"/>
				<link field="question" source="asvq" type="has_a"/>
				<link field="answer" source="asva" type="has_a"/>
				<!-- <link field="usr" source="au" type="has_a"/> -->
			</links>

		</class>

		<class
			id="asvq"
			perl:class="Fieldmapper::action::survey_question"
			cdbi:class="action::survey_question"
			javascript:class="asvq"
			c:class="asvq">
			<database:table rdbms="Pg">
				<database:name>action.survey_question</database:name>
				<database:sequence>action.survey_question_id_seq</database:sequence>
			</database:table>
			<database:table rdbms="MySQL">
				<database:name>action_survey_question</database:name>
			</database:table>
	
			<javascript:superclass>Fieldmapper</javascript:superclass>
			<perl:superclass>Fieldmapper</perl:superclass>
			<cdbi:superclass>OpenILS::Storage::CDBI</cdbi:superclass>
			
			<fields>
				<field
					name="id"
					datatype="int"
					database:primary="true" />
					
				<field
					name="survey"
					datatype="int"
					database:required="true" />

				<field
					name="question"
					datatype="text"
					database:required="true" />

			</fields>

			<links>
				<link field="survey" source="asv" type="has_a"/>
				<link field="answers" source="asva" type="has_many"/>
			</links>
		</class>

		<class
			id="asva"
			perl:class="Fieldmapper::action::survey_answer"
			cdbi:class="action::survey_answer"
			javascript:class="asva"
			c:class="asva">
			<database:table rdbms="Pg">
				<database:name>action.survey_answer</database:name>
				<database:sequence>action.survey_answer_id_seq</database:sequence>
			</database:table>
			<database:table rdbms="MySQL">
				<database:name>action_survey_answer</database:name>
			</database:table>
	
			<javascript:superclass>Fieldmapper</javascript:superclass>
			<perl:superclass>Fieldmapper</perl:superclass>
			<cdbi:superclass>OpenILS::Storage::CDBI</cdbi:superclass>
			
			<fields>
				<field
					name="id"
					datatype="int"
					database:primary="true" />
					
				<field
					name="question"
					datatype="int"
					database:required="true" />

				<field
					name="answer"
					datatype="text"
					database:required="true" />

			</fields>

			<links>
				<link field="question" source="asvq" type="has_a"/>
				<link field="responses" source="asvr" type="has_many"/>
			</links>
		</class>

		<class
			id="aou"
			perl:class="Fieldmapper::actor::org_unit"
			cdbi:class="actor::org_unit"
			javascript:class="aou"
			c:class="aou">
			<database:table rdbms="Pg">
				<database:name>actor.org_unit</database:name>
				<database:sequence>actor.org_unit_id_seq</database:sequence>
			</database:table>
			<database:table rdbms="MySQL">
				<database:name>actor_org_unit</database:name>
			</database:table>
	
			<javascript:superclass>Fieldmapper</javascript:superclass>
			<perl:superclass>Fieldmapper</perl:superclass>
			<cdbi:superclass>OpenILS::Storage::CDBI</cdbi:superclass>
			
			<fields>
				<field
					name="id"
					datatype="int"
					database:primary="true" />
			</fields>
		</class>
	
		<!-- Survey class definition -->
		<class
			id="asv"
			perl:class="Fieldmapper::action::survey"
			cdbi:class="action::survey"
			javascript:class="asv"
			c:class="asv">
			<database:table rdbms="Pg">
				<database:name>action.survey</database:name>
				<database:sequence>action.survey_id_seq</database:sequence>
			</database:table>
			<database:table rdbms="MySQL">
				<database:name>action_survey</database:name>
			</database:table>
	
			<javascript:superclass>Fieldmapper</javascript:superclass>
			<perl:superclass>Fieldmapper</perl:superclass>
			<cdbi:superclass>OpenILS::Storage::CDBI</cdbi:superclass>

			<methods interface='authenticated' service='open-ils.proxy'>
				<create method='open-ils.storage.direct.action.survey.create'/>
				<retrieve method='open-ils.storage.direct.action.survey.retrieve'/>
				<search method='open-ils.storage.direct.action.survey.search'/>
				<update method='open-ils.storage.direct.action.survey.update'/>
				<delete method='open-ils.storage.direct.action.survey.delete'/>
			</methods>
			
			<methods interface='trusted' service='open-ils.storage'>
				<create method='open-ils.storage.direct.action.survey.create'/>
				<retrieve method='open-ils.storage.direct.action.survey.retrieve'/>
				<search method='open-ils.storage.direct.action.survey.search'/>
				<update method='open-ils.storage.direct.action.survey.update'/>
				<delete method='open-ils.storage.direct.action.survey.delete'/>
			</methods>
			
			<fields>
				<field
					name="id"
					datatype="int"
					database:primary="true" />
					
				<field
					name="name"
					datatype="text"
					database:required="true" />
					
				<field
					name="description"
					datatype="text"
					database:required="true" />
					
				<field
					name="owner"
					datatype="int"
					database:required="true" />
					
				<field
					name="start_date"
					datatype="timestamp"
					database:required="true"
					database:default="now()" />
					
				<field
					name="end_date"
					datatype="timestamp"
					database:required="true"
					database:default="now() + '1 month'" />
					
				<field
					name="usr_summary"
					datatype="bool"
					database:required="true"
					default="t" />
					
				<field
					name="opac"
					datatype="bool"
					database:required="true"
					default="f" />
					
				<field
					name="poll"
					datatype="bool"
					database:required="true"
					default="f" />

				<field
					name="required"
					datatype="bool"
					database:required="true"
					default="f" />

			</fields>
	
			<links>
				<link field="questions" source="asvq" type="has_many"/>
				<link field="responses" source="asvr" type="has_many"/>
				<link field="owner" source="aou" type="has_a"/>
			</links>
	
		</class>

	</classes>
</fieldmapper>

