DB Tpl Strings - Remove table "civicrm_persistent"
[civicrm-core.git] / xml / schema / Member / Membership.xml
1 <?xml version="1.0" encoding="iso-8859-1" ?>
2
3 <table>
4 <base>CRM/Member</base>
5 <class>Membership</class>
6 <name>civicrm_membership</name>
7 <comment>Contact Membership records.</comment>
8 <add>1.5</add>
9 <log>true</log>
10 <field>
11 <name>id</name>
12 <uniqueName>membership_id</uniqueName>
13 <type>int unsigned</type>
14 <required>true</required>
15 <import>true</import>
16 <title>Membership ID</title>
17 <headerPattern>/^(m(embership\s)?id)$/i</headerPattern>
18 <comment>Membership Id</comment>
19 <add>1.5</add>
20 </field>
21 <primaryKey>
22 <name>id</name>
23 <autoincrement>true</autoincrement>
24 </primaryKey>
25
26 <field>
27 <name>contact_id</name>
28 <uniqueName>membership_contact_id</uniqueName>
29 <type>int unsigned</type>
30 <required>true</required>
31 <title>Contact ID</title>
32 <headerPattern>/contact(.?id)?/i</headerPattern>
33 <dataPattern>/^\d+$/</dataPattern>
34 <import>true</import>
35 <comment>FK to Contact ID</comment>
36 <add>1.5</add>
37 <html>
38 <type>EntityRef</type>
39 </html>
40 </field>
41 <foreignKey>
42 <name>contact_id</name>
43 <table>civicrm_contact</table>
44 <key>id</key>
45 <add>1.5</add>
46 <onDelete>CASCADE</onDelete>
47 </foreignKey>
48 <field>
49 <name>membership_type_id</name>
50 <type>int unsigned</type>
51 <title>Membership Type Id</title>
52 <import>true</import>
53 <headerPattern>/^(m(embership\s)?type)$/i</headerPattern>
54 <export>false</export>
55 <required>true</required>
56 <comment>FK to Membership Type</comment>
57 <pseudoconstant>
58 <table>civicrm_membership_type</table>
59 <keyColumn>id</keyColumn>
60 <labelColumn>name</labelColumn>
61 </pseudoconstant>
62 <html>
63 <type>Select</type>
64 </html>
65 <add>1.5</add>
66 </field>
67 <foreignKey>
68 <name>membership_type_id</name>
69 <table>civicrm_membership_type</table>
70 <key>id</key>
71 <add>1.5</add>
72 <onDelete>CASCADE</onDelete>
73 </foreignKey>
74 <field>
75 <name>join_date</name>
76 <title>Member Since</title>
77 <type>date</type>
78 <import>true</import>
79 <headerPattern>/^join|(j(oin\s)?date)$/i</headerPattern>
80 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
81 <comment>Beginning of initial membership period (member since...).</comment>
82 <add>1.5</add>
83 <html>
84 <type>Select Date</type>
85 <formatType>activityDate</formatType>
86 </html>
87 <uniqueName>membership_join_date</uniqueName>
88 </field>
89 <field>
90 <name>start_date</name>
91 <uniqueName>membership_start_date</uniqueName>
92 <title>Membership Start Date</title>
93 <type>date</type>
94 <import>true</import>
95 <headerPattern>/(member(ship)?.)?start(s)?(.date$)?/i</headerPattern>
96 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
97 <comment>Beginning of current uninterrupted membership period.</comment>
98 <add>1.5</add>
99 <html>
100 <type>Select Date</type>
101 <formatType>activityDate</formatType>
102 </html>
103 </field>
104 <field>
105 <name>end_date</name>
106 <uniqueName>membership_end_date</uniqueName>
107 <title>Membership Expiration Date</title>
108 <type>date</type>
109 <import>true</import>
110 <headerPattern>/(member(ship)?.)?end(s)?(.date$)?/i</headerPattern>
111 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
112 <comment>Current membership period expire date.</comment>
113 <add>1.5</add>
114 <html>
115 <type>Select Date</type>
116 <formatType>activityDate</formatType>
117 </html>
118 </field>
119 <field>
120 <name>source</name>
121 <uniqueName>membership_source</uniqueName>
122 <title>Source</title>
123 <import>true</import>
124 <headerPattern>/^(member(ship?))?source$/i</headerPattern>
125 <type>varchar</type>
126 <length>128</length>
127 <add>1.5</add>
128 <html>
129 <type>Text</type>
130 </html>
131 </field>
132 <field>
133 <name>status_id</name>
134 <title>Membership Status Id</title>
135 <import>true</import>
136 <headerPattern>/(member(ship|).)?(status)$/i</headerPattern>
137 <type>int unsigned</type>
138 <export>false</export>
139 <required>true</required>
140 <comment>FK to Membership Status</comment>
141 <pseudoconstant>
142 <table>civicrm_membership_status</table>
143 <keyColumn>id</keyColumn>
144 <labelColumn>label</labelColumn>
145 </pseudoconstant>
146 <html>
147 <type>Select</type>
148 </html>
149 <add>1.5</add>
150 </field>
151 <foreignKey>
152 <name>status_id</name>
153 <table>civicrm_membership_status</table>
154 <key>id</key>
155 <add>1.5</add>
156 <onDelete>CASCADE</onDelete>
157 </foreignKey>
158 <field>
159 <name>is_override</name>
160 <uniqueName>member_is_override</uniqueName>
161 <title>Status Override</title>
162 <import>true</import>
163 <export>true</export>
164 <headerPattern>/override$/i</headerPattern>
165 <type>boolean</type>
166 <comment>Admin users may set a manual status which overrides the calculated status. When this flag is true, automated status update scripts should NOT modify status for the record.</comment>
167 <html>
168 <type>CheckBox</type>
169 </html>
170 <add>1.5</add>
171 </field>
172 <field>
173 <name>status_override_end_date</name>
174 <title>Status Override End Date</title>
175 <type>date</type>
176 <default>NULL</default>
177 <import>true</import>
178 <comment>Then end date of membership status override if 'Override until selected date' override type is selected.</comment>
179 <add>4.7</add>
180 <html>
181 <type>Select Date</type>
182 </html>
183 </field>
184 <field>
185 <name>owner_membership_id</name>
186 <type>int unsigned</type>
187 <title>Primary Member ID</title>
188 <comment>Optional FK to Parent Membership.</comment>
189 <export>true</export>
190 <add>1.7</add>
191 </field>
192 <foreignKey>
193 <name>owner_membership_id</name>
194 <table>civicrm_membership</table>
195 <key>id</key>
196 <add>1.7</add>
197 <onDelete>SET NULL</onDelete>
198 </foreignKey>
199 <index>
200 <name>index_owner_membership_id</name>
201 <fieldName>owner_membership_id</fieldName>
202 <add>1.7</add>
203 </index>
204 <field>
205 <name>max_related</name>
206 <type>int</type>
207 <comment>Maximum number of related memberships (membership_type override).</comment>
208 <add>4.3</add>
209 <export>true</export>
210 <html>
211 <type>Text</type>
212 </html>
213 </field>
214 <field>
215 <name>is_test</name>
216 <title>Test</title>
217 <uniqueName>member_is_test</uniqueName>
218 <type>boolean</type>
219 <default>0</default>
220 <import>true</import>
221 <headerPattern>/(is.)?test(.member(ship)?)?/i</headerPattern>
222 <html>
223 <type>CheckBox</type>
224 </html>
225 </field>
226 <field>
227 <name>is_pay_later</name>
228 <uniqueName>member_is_pay_later</uniqueName>
229 <title>Is Pay Later</title>
230 <type>boolean</type>
231 <default>0</default>
232 <import>true</import>
233 <headerPattern>/(is.)?(pay(.)?later)$/i</headerPattern>
234 <add>2.1</add>
235 <html>
236 <type>CheckBox</type>
237 </html>
238 </field>
239 <field>
240 <name>contribution_recur_id</name>
241 <uniqueName>membership_recur_id</uniqueName>
242 <title>Membership Recurring Contribution</title>
243 <type>int unsigned</type>
244 <export>true</export>
245 <comment>Conditional foreign key to civicrm_contribution_recur id. Each membership in connection with a recurring contribution carries a foreign key to the recurring contribution record. This assumes we can track these processor initiated events.</comment>
246 <add>3.3</add>
247 </field>
248 <foreignKey>
249 <name>contribution_recur_id</name>
250 <table>civicrm_contribution_recur</table>
251 <key>id</key>
252 <add>3.3</add>
253 <onDelete>SET NULL</onDelete>
254 </foreignKey>
255 <field>
256 <name>campaign_id</name>
257 <uniqueName>member_campaign_id</uniqueName>
258 <type>int unsigned</type>
259 <title>Campaign</title>
260 <import>true</import>
261 <comment>The campaign for which this membership is attached.</comment>
262 <pseudoconstant>
263 <table>civicrm_campaign</table>
264 <keyColumn>id</keyColumn>
265 <labelColumn>title</labelColumn>
266 </pseudoconstant>
267 <add>3.4</add>
268 <html>
269 <type>Select</type>
270 </html>
271 </field>
272 <foreignKey>
273 <name>campaign_id</name>
274 <table>civicrm_campaign</table>
275 <key>id</key>
276 <onDelete>SET NULL</onDelete>
277 </foreignKey>
278 </table>