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