Merge pull request #17309 from colemanw/MailingAB
[civicrm-core.git] / xml / schema / Member / Membership.xml
CommitLineData
6a488035
TO
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>
5435b737
EM
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>
6a488035
TO
20 </field>
21 <primaryKey>
5435b737
EM
22 <name>id</name>
23 <autoincrement>true</autoincrement>
6a488035
TO
24 </primaryKey>
25
26 <field>
5435b737
EM
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>
916b6181 38 <type>EntityRef</type>
5435b737 39 </html>
6a488035 40 </field>
3c7d2158 41 <foreignKey>
5435b737
EM
42 <name>contact_id</name>
43 <table>civicrm_contact</table>
44 <key>id</key>
45 <add>1.5</add>
46 <onDelete>CASCADE</onDelete>
6a488035
TO
47 </foreignKey>
48 <field>
5435b737
EM
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>
03ee227b 64 <label>Membership Type</label>
5435b737
EM
65 </html>
66 <add>1.5</add>
6a488035 67 </field>
3c7d2158 68 <foreignKey>
5435b737
EM
69 <name>membership_type_id</name>
70 <table>civicrm_membership_type</table>
71 <key>id</key>
72 <add>1.5</add>
73 <onDelete>CASCADE</onDelete>
6a488035 74 </foreignKey>
3c7d2158 75 <field>
5435b737
EM
76 <name>join_date</name>
77 <title>Member Since</title>
78 <type>date</type>
79 <import>true</import>
80 <headerPattern>/^join|(j(oin\s)?date)$/i</headerPattern>
81 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
82 <comment>Beginning of initial membership period (member since...).</comment>
83 <add>1.5</add>
84 <html>
85 <type>Select Date</type>
24317d89 86 <formatType>activityDate</formatType>
5435b737 87 </html>
09ba1975 88 <uniqueName>membership_join_date</uniqueName>
3c7d2158 89 </field>
90 <field>
5435b737
EM
91 <name>start_date</name>
92 <uniqueName>membership_start_date</uniqueName>
93 <title>Membership Start Date</title>
94 <type>date</type>
95 <import>true</import>
96 <headerPattern>/(member(ship)?.)?start(s)?(.date$)?/i</headerPattern>
97 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
98 <comment>Beginning of current uninterrupted membership period.</comment>
99 <add>1.5</add>
100 <html>
101 <type>Select Date</type>
24317d89 102 <formatType>activityDate</formatType>
5435b737 103 </html>
6a488035 104 </field>
3c7d2158 105 <field>
5435b737
EM
106 <name>end_date</name>
107 <uniqueName>membership_end_date</uniqueName>
108 <title>Membership Expiration Date</title>
109 <type>date</type>
110 <import>true</import>
111 <headerPattern>/(member(ship)?.)?end(s)?(.date$)?/i</headerPattern>
112 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
113 <comment>Current membership period expire date.</comment>
114 <add>1.5</add>
115 <html>
116 <type>Select Date</type>
24317d89 117 <formatType>activityDate</formatType>
5435b737 118 </html>
3c7d2158 119 </field>
120 <field>
5435b737
EM
121 <name>source</name>
122 <uniqueName>membership_source</uniqueName>
123 <title>Source</title>
124 <import>true</import>
125 <headerPattern>/^(member(ship?))?source$/i</headerPattern>
126 <type>varchar</type>
127 <length>128</length>
128 <add>1.5</add>
129 <html>
130 <type>Text</type>
131 </html>
3c7d2158 132 </field>
6a488035 133 <field>
5435b737
EM
134 <name>status_id</name>
135 <title>Membership Status Id</title>
136 <import>true</import>
137 <headerPattern>/(member(ship|).)?(status)$/i</headerPattern>
138 <type>int unsigned</type>
139 <export>false</export>
140 <required>true</required>
141 <comment>FK to Membership Status</comment>
142 <pseudoconstant>
143 <table>civicrm_membership_status</table>
144 <keyColumn>id</keyColumn>
145 <labelColumn>label</labelColumn>
146 </pseudoconstant>
147 <html>
148 <type>Select</type>
149 </html>
150 <add>1.5</add>
6a488035 151 </field>
3c7d2158 152 <foreignKey>
5435b737
EM
153 <name>status_id</name>
154 <table>civicrm_membership_status</table>
155 <key>id</key>
156 <add>1.5</add>
157 <onDelete>CASCADE</onDelete>
6a488035 158 </foreignKey>
3c7d2158 159 <field>
5435b737 160 <name>is_override</name>
8f67d99a 161 <uniqueName>member_is_override</uniqueName>
5435b737
EM
162 <title>Status Override</title>
163 <import>true</import>
8f67d99a 164 <export>true</export>
5435b737
EM
165 <headerPattern>/override$/i</headerPattern>
166 <type>boolean</type>
167 <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>
168 <html>
169 <type>CheckBox</type>
170 </html>
171 <add>1.5</add>
3c7d2158 172 </field>
e136f704
O
173 <field>
174 <name>status_override_end_date</name>
175 <title>Status Override End Date</title>
176 <type>date</type>
177 <default>NULL</default>
178 <import>true</import>
179 <comment>Then end date of membership status override if 'Override until selected date' override type is selected.</comment>
180 <add>4.7</add>
181 <html>
182 <type>Select Date</type>
183 </html>
184 </field>
6a488035 185 <field>
5435b737
EM
186 <name>owner_membership_id</name>
187 <type>int unsigned</type>
011aeb62 188 <title>Primary Member ID</title>
5435b737
EM
189 <comment>Optional FK to Parent Membership.</comment>
190 <export>true</export>
191 <add>1.7</add>
6a488035
TO
192 </field>
193 <foreignKey>
5435b737
EM
194 <name>owner_membership_id</name>
195 <table>civicrm_membership</table>
196 <key>id</key>
197 <add>1.7</add>
198 <onDelete>SET NULL</onDelete>
6a488035
TO
199 </foreignKey>
200 <index>
201 <name>index_owner_membership_id</name>
202 <fieldName>owner_membership_id</fieldName>
203 <add>1.7</add>
204 </index>
205 <field>
5435b737
EM
206 <name>max_related</name>
207 <type>int</type>
208 <comment>Maximum number of related memberships (membership_type override).</comment>
209 <add>4.3</add>
8f67d99a 210 <export>true</export>
5435b737
EM
211 <html>
212 <type>Text</type>
213 </html>
6a488035
TO
214 </field>
215 <field>
5435b737
EM
216 <name>is_test</name>
217 <title>Test</title>
218 <uniqueName>member_is_test</uniqueName>
219 <type>boolean</type>
220 <default>0</default>
221 <import>true</import>
222 <headerPattern>/(is.)?test(.member(ship)?)?/i</headerPattern>
223 <html>
224 <type>CheckBox</type>
225 </html>
6a488035 226 </field>
3c7d2158 227 <field>
5435b737
EM
228 <name>is_pay_later</name>
229 <uniqueName>member_is_pay_later</uniqueName>
230 <title>Is Pay Later</title>
231 <type>boolean</type>
232 <default>0</default>
233 <import>true</import>
234 <headerPattern>/(is.)?(pay(.)?later)$/i</headerPattern>
235 <add>2.1</add>
236 <html>
237 <type>CheckBox</type>
238 </html>
6a488035 239 </field>
3c7d2158 240 <field>
241 <name>contribution_recur_id</name>
8f67d99a 242 <uniqueName>membership_recur_id</uniqueName>
c58f0e40 243 <title>Membership Recurring Contribution</title>
3c7d2158 244 <type>int unsigned</type>
8f67d99a 245 <export>true</export>
3c7d2158 246 <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>
247 <add>3.3</add>
248 </field>
249 <foreignKey>
250 <name>contribution_recur_id</name>
251 <table>civicrm_contribution_recur</table>
252 <key>id</key>
253 <add>3.3</add>
6a488035
TO
254 <onDelete>SET NULL</onDelete>
255 </foreignKey>
3c7d2158 256 <field>
257 <name>campaign_id</name>
6a488035
TO
258 <uniqueName>member_campaign_id</uniqueName>
259 <type>int unsigned</type>
e1ab2e91 260 <title>Campaign</title>
3c7d2158 261 <import>true</import>
262 <comment>The campaign for which this membership is attached.</comment>
3e3eacd0
CW
263 <pseudoconstant>
264 <table>civicrm_campaign</table>
265 <keyColumn>id</keyColumn>
266 <labelColumn>title</labelColumn>
3e3eacd0 267 </pseudoconstant>
3c7d2158 268 <add>3.4</add>
614d72ec 269 <html>
270 <type>Select</type>
271 </html>
3c7d2158 272 </field>
273 <foreignKey>
274 <name>campaign_id</name>
275 <table>civicrm_campaign</table>
276 <key>id</key>
6a488035
TO
277 <onDelete>SET NULL</onDelete>
278 </foreignKey>
279</table>