1 <?xml version="1.0" encoding="UTF-8"?>
2 <database name="readifood" defaultIdMethod="native">
4 <table name="City" phpName="City" baseClass="ReadifoodObject">
6 <parameter name="Engine" value="InnoDB"/>
7 <parameter name="Charset" value="utf8"/>
9 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
10 <column name="name" type="varchar" size="64" required="true"/>
11 <column name="postcode_area" type="varchar" size="4" required="true"/>
12 <unique name="postcode">
13 <unique-column name="name"/>
14 <unique-column name="postcode_area"/>
18 <!-- Area or neighbourhood -->
19 <table name="Area" phpName="Area" baseClass="ReadifoodObject">
21 <parameter name="Engine" value="InnoDB"/>
22 <parameter name="Charset" value="utf8"/>
24 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
25 <column name="city_id" type="integer" required="true"/>
26 <column name="name" type="varchar" size="64" required="true"/>
27 <column name="days" type="integer" required="true"/>
28 <foreign-key foreignTable="City" phpName="City" refPhpName="Area">
29 <reference local="city_id" foreign="id"/>
34 <table name="Address" phpName="Address" baseClass="ReadifoodObject">
36 <parameter name="Engine" value="InnoDB"/>
37 <parameter name="Charset" value="utf8"/>
39 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
40 <column name="area_id" type="integer" required="true"/>
41 <column name="line" type="varchar" size="128" required="true"/>
42 <column name="postcode" type="varchar" size="16" required="true"/>
43 <foreign-key foreignTable="Area" phpName="Area" refPhpName="Address">
44 <reference local="area_id" foreign="id"/>
49 <table name="Contact" phpName="Contact" baseClass="ReadifoodObject">
51 <parameter name="Engine" value="InnoDB"/>
52 <parameter name="Charset" value="utf8"/>
54 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
55 <column name="added" type="date" required="true"/>
56 <column name="address_id" type="integer" required="true"/>
57 <column name="forename" type="varchar" size="64" required="true"/>
58 <column name="middle" type="varchar" size="128" required="true"/>
59 <column name="surname" type="varchar" size="64" required="true"/>
60 <column name="displayname" type="varchar" size="256" required="true"/>
61 <column name="role" type="integer" required="true"/>
62 <column name="telephone1" type="varchar" size="32" required="true"/>
63 <column name="telephone2" type="varchar" size="32" required="true"/>
64 <column name="email" type="varchar" size="64" required="true"/>
65 <column name="parcel" type="integer"/>
66 <column name="notes" type="longvarchar" lazyLoad="true"/>
67 <foreign-key foreignTable="Address" phpName="Address" refPhpName="Contact">
68 <reference local="address_id" foreign="id"/>
73 <table name="User" phpName="User" baseClass="ReadifoodObject">
75 <parameter name="Engine" value="InnoDB"/>
76 <parameter name="Charset" value="utf8"/>
78 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
79 <column name="contact_id" type="integer" required="true"/>
80 <column name="username" type="varchar" size="64" required="true"/>
81 <column name="admin" type="integer" required="true"/>
82 <foreign-key foreignTable="Contact" phpName="Contact" refPhpName="User">
83 <reference local="contact_id" foreign="id"/>
88 <table name="Hub" phpName="Hub" baseClass="ReadifoodObject">
90 <parameter name="Engine" value="InnoDB"/>
91 <parameter name="Charset" value="utf8"/>
93 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
94 <column name="address_id" type="integer" required="true"/>
95 <column name="displayname" type="varchar" size="256" required="true"/>
96 <column name="telephone1" type="varchar" size="32" required="true"/>
97 <column name="telephone2" type="varchar" size="32" required="true"/>
98 <column name="email" type="varchar" size="64" required="true"/>
99 <column name="role" type="integer" required="true"/>
100 <foreign-key foreignTable="Address" phpName="Address" refPhpName="Hub">
101 <reference local="address_id" foreign="id"/>
106 <table name="Donation" phpName="Donation" baseClass="ReadifoodObject">
107 <vendor type="mysql">
108 <parameter name="Engine" value="InnoDB"/>
109 <parameter name="Charset" value="utf8"/>
111 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
112 <column name="date" type="date" required="true"/>
113 <column name="contact_id" type="integer" required="true"/>
114 <column name="hub_id" type="integer" required="true"/>
115 <column name="quantity" type="integer" required="true"/>
116 <foreign-key foreignTable="Contact" phpName="Contact" refPhpName="Donation">
117 <reference local="contact_id" foreign="id"/>
119 <foreign-key foreignTable="Hub" phpName="Hub" refPhpName="Donation">
120 <reference local="hub_id" foreign="id"/>
125 <table name="FoodOrder" phpName="Order" baseClass="ReadifoodObject">
126 <vendor type="mysql">
127 <parameter name="Engine" value="InnoDB"/>
128 <parameter name="Charset" value="utf8"/>
130 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
131 <column name="date" type="date" required="true"/>
132 <column name="requester_id" type="integer" required="true"/>
133 <column name="beneficiary_id" type="integer" required="true"/>
134 <column name="hub_id" type="integer" required="false"/>
135 <column name="parcel" type="integer" required="true"/>
136 <column name="notes" type="longvarchar" lazyLoad="true"/>
137 <foreign-key foreignTable="Contact" phpName="Requester" refPhpName="Requester">
138 <reference local="requester_id" foreign="id"/>
140 <foreign-key foreignTable="Contact" phpName="Beneficiary" refPhpName="Beneficiary">
141 <reference local="beneficiary_id" foreign="id"/>
143 <foreign-key foreignTable="Hub" phpName="Hub" refPhpName="Hub">
144 <reference local="hub_id" foreign="id"/>
149 <table name="OrderState" phpName="OrderState" baseClass="ReadifoodObject">
150 <vendor type="mysql">
151 <parameter name="Engine" value="InnoDB"/>
152 <parameter name="Charset" value="utf8"/>
154 <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
155 <column name="updated" type="timestamp" required="true"/>
156 <column name="order_id" type="integer" required="true"/>
157 <column name="user_id" type="integer" required="true"/>
158 <column name="driver_id" type="integer" required="false"/>
159 <column name="state" type="integer" required="true"/>
160 <foreign-key foreignTable="FoodOrder" phpName="Order" refPhpName="OrderState">
161 <reference local="order_id" foreign="id"/>
163 <foreign-key foreignTable="User" phpName="User" refPhpName="OrderState">
164 <reference local="user_id" foreign="contact_id"/>
166 <foreign-key foreignTable="Contact" phpName="Driver" refPhpName="OrderState">
167 <reference local="driver_id" foreign="id"/>