Merge remote-tracking branch 'upstream/4.3' into 4.3-master-2013-05-21-13-15-18
[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 </field>
38 <foreignKey>
39 <name>contact_id</name>
40 <table>civicrm_contact</table>
41 <key>id</key>
42 <add>1.5</add>
43 <onDelete>CASCADE</onDelete>
44 </foreignKey>
45 <field>
46 <name>membership_type_id</name>
47 <type>int unsigned</type>
48 <title>Membership Type Id</title>
49 <import>true</import>
50 <headerPattern>/^(m(embership\s)?type)$/i</headerPattern>
51 <export>false</export>
52 <required>true</required>
53 <comment>FK to Membership Type</comment>
54 <add>1.5</add>
55 </field>
56 <foreignKey>
57 <name>membership_type_id</name>
58 <table>civicrm_membership_type</table>
59 <key>id</key>
60 <add>1.5</add>
61 <onDelete>CASCADE</onDelete>
62 </foreignKey>
63 <field>
64 <name>join_date</name>
65 <title>Member Since</title>
66 <type>date</type>
67 <import>true</import>
68 <headerPattern>/^join|(j(oin\s)?date)$/i</headerPattern>
69 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
70 <comment>Beginning of initial membership period (member since...).</comment>
71 <add>1.5</add>
72 </field>
73 <field>
74 <name>start_date</name>
75 <uniqueName>membership_start_date</uniqueName>
76 <title>Membership Start Date</title>
77 <type>date</type>
78 <import>true</import>
79 <headerPattern>/(member(ship)?.)?start(s)?(.date$)?/i</headerPattern>
80 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
81 <comment>Beginning of current uninterrupted membership period.</comment>
82 <add>1.5</add>
83 </field>
84 <field>
85 <name>end_date</name>
86 <uniqueName>membership_end_date</uniqueName>
87 <title>Membership Expiration Date</title>
88 <type>date</type>
89 <import>true</import>
90 <headerPattern>/(member(ship)?.)?end(s)?(.date$)?/i</headerPattern>
91 <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
92 <comment>Current membership period expire date.</comment>
93 <add>1.5</add>
94 </field>
95 <field>
96 <name>source</name>
97 <uniqueName>membership_source</uniqueName>
98 <title>Source</title>
99 <import>true</import>
100 <headerPattern>/^(member(ship?))?source$/i</headerPattern>
101 <type>varchar</type>
102 <length>128</length>
103 <add>1.5</add>
104 </field>
105 <field>
106 <name>status_id</name>
107 <title>Membership Status Id</title>
108 <import>true</import>
109 <headerPattern>/(member(ship|).)?(status)$/i</headerPattern>
110 <type>int unsigned</type>
111 <export>false</export>
112 <required>true</required>
113 <comment>FK to Membership Status</comment>
114 <add>1.5</add>
115 </field>
116 <foreignKey>
117 <name>status_id</name>
118 <table>civicrm_membership_status</table>
119 <key>id</key>
120 <add>1.5</add>
121 <onDelete>CASCADE</onDelete>
122 </foreignKey>
123 <field>
124 <name>is_override</name>
125 <title>Status Override</title>
126 <import>true</import>
127 <headerPattern>/override$/i</headerPattern>
128 <type>boolean</type>
129 <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>
130 <add>1.5</add>
131 </field>
132 <field>
133 <name>owner_membership_id</name>
134 <type>int unsigned</type>
135 <title>Primary Member ID</title>
136 <comment>Optional FK to Parent Membership.</comment>
137 <export>true</export>
138 <add>1.7</add>
139 </field>
140 <foreignKey>
141 <name>owner_membership_id</name>
142 <table>civicrm_membership</table>
143 <key>id</key>
144 <add>1.7</add>
145 <onDelete>SET NULL</onDelete>
146 </foreignKey>
147 <index>
148 <name>index_owner_membership_id</name>
149 <fieldName>owner_membership_id</fieldName>
150 <add>1.7</add>
151 </index>
152 <field>
153 <name>max_related</name>
154 <type>int</type>
155 <comment>Maximum number of related memberships (membership_type override).</comment>
156 <add>4.3</add>
157 </field>
158 <field>
159 <name>is_test</name>
160 <title>Test</title>
161 <uniqueName>member_is_test</uniqueName>
162 <type>boolean</type>
163 <default>0</default>
164 <import>true</import>
165 <headerPattern>/(is.)?test(.member(ship)?)?/i</headerPattern>
166 </field>
167 <field>
168 <name>is_pay_later</name>
169 <uniqueName>member_is_pay_later</uniqueName>
170 <title>Is Pay Later</title>
171 <type>boolean</type>
172 <default>0</default>
173 <import>true</import>
174 <headerPattern>/(is.)?(pay(.)?later)$/i</headerPattern>
175 <add>2.1</add>
176 </field>
177 <field>
178 <name>contribution_recur_id</name>
179 <type>int unsigned</type>
180 <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>
181 <add>3.3</add>
182 </field>
183 <foreignKey>
184 <name>contribution_recur_id</name>
185 <table>civicrm_contribution_recur</table>
186 <key>id</key>
187 <add>3.3</add>
188 <onDelete>SET NULL</onDelete>
189 </foreignKey>
190 <field>
191 <name>campaign_id</name>
192 <uniqueName>member_campaign_id</uniqueName>
193 <type>int unsigned</type>
194 <title>Campaign ID</title>
195 <import>true</import>
196 <comment>The campaign for which this membership is attached.</comment>
197 <add>3.4</add>
198 </field>
199 <foreignKey>
200 <name>campaign_id</name>
201 <table>civicrm_campaign</table>
202 <key>id</key>
203 <onDelete>SET NULL</onDelete>
204 </foreignKey>
205 </table>