<uniqueName>membership_id</uniqueName>
<type>int unsigned</type>
<required>true</required>
- <import>true</import>
+ <import>true</import>
<title>Membership ID</title>
<headerPattern>/^(m(embership\s)?id)$/i</headerPattern>
<comment>Membership Id</comment>
<comment>FK to Contact ID</comment>
<add>1.5</add>
</field>
- <foreignKey>
- <name>contact_id</name>
- <table>civicrm_contact</table>
+ <foreignKey>
+ <name>contact_id</name>
+ <table>civicrm_contact</table>
<key>id</key>
<add>1.5</add>
<onDelete>CASCADE</onDelete>
<export>false</export>
<required>true</required>
<comment>FK to Membership Type</comment>
+ <pseudoconstant>
+ <table>civicrm_membership_type</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>name</labelColumn>
+ </pseudoconstant>
<add>1.5</add>
</field>
- <foreignKey>
- <name>membership_type_id</name>
- <table>civicrm_membership_type</table>
+ <foreignKey>
+ <name>membership_type_id</name>
+ <table>civicrm_membership_type</table>
<key>id</key>
<add>1.5</add>
<onDelete>CASCADE</onDelete>
</foreignKey>
- <field>
- <name>join_date</name>
+ <field>
+ <name>join_date</name>
<title>Member Since</title>
<type>date</type>
<import>true</import>
<headerPattern>/^join|(j(oin\s)?date)$/i</headerPattern>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>Beginning of initial membership period (member since...).</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>start_date</name>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <comment>Beginning of initial membership period (member since...).</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>start_date</name>
<uniqueName>membership_start_date</uniqueName>
<title>Membership Start Date</title>
<type>date</type>
<import>true</import>
<headerPattern>/(member(ship)?.)?start(s)?(.date$)?/i</headerPattern>
- <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
+ <dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
<comment>Beginning of current uninterrupted membership period.</comment>
- <add>1.5</add>
+ <add>1.5</add>
</field>
- <field>
- <name>end_date</name>
+ <field>
+ <name>end_date</name>
<uniqueName>membership_end_date</uniqueName>
<title>Membership Expiration Date</title>
<type>date</type>
<import>true</import>
<headerPattern>/(member(ship)?.)?end(s)?(.date$)?/i</headerPattern>
<dataPattern>/\d{4}-?\d{2}-?\d{2}/</dataPattern>
- <comment>Current membership period expire date.</comment>
- <add>1.5</add>
- </field>
- <field>
- <name>source</name>
+ <comment>Current membership period expire date.</comment>
+ <add>1.5</add>
+ </field>
+ <field>
+ <name>source</name>
<uniqueName>membership_source</uniqueName>
<title>Source</title>
<import>true</import>
<headerPattern>/^(member(ship?))?source$/i</headerPattern>
<type>varchar</type>
<length>128</length>
- <add>1.5</add>
- </field>
+ <add>1.5</add>
+ </field>
<field>
<name>status_id</name>
<title>Membership Status Id</title>
<export>false</export>
<required>true</required>
<comment>FK to Membership Status</comment>
+ <pseudoconstant>
+ <table>civicrm_membership_status</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>label</labelColumn>
+ </pseudoconstant>
<add>1.5</add>
</field>
- <foreignKey>
- <name>status_id</name>
- <table>civicrm_membership_status</table>
+ <foreignKey>
+ <name>status_id</name>
+ <table>civicrm_membership_status</table>
<key>id</key>
<add>1.5</add>
<onDelete>CASCADE</onDelete>
</foreignKey>
- <field>
- <name>is_override</name>
+ <field>
+ <name>is_override</name>
<title>Status Override</title>
<import>true</import>
<headerPattern>/override$/i</headerPattern>
<type>boolean</type>
<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>
- <add>1.5</add>
- </field>
+ <add>1.5</add>
+ </field>
<field>
<name>owner_membership_id</name>
<type>int unsigned</type>
<add>4.3</add>
</field>
<field>
- <name>is_test</name>
+ <name>is_test</name>
<title>Test</title>
- <uniqueName>member_is_test</uniqueName>
+ <uniqueName>member_is_test</uniqueName>
<type>boolean</type>
<default>0</default>
<import>true</import>
<headerPattern>/(is.)?test(.member(ship)?)?/i</headerPattern>
</field>
- <field>
- <name>is_pay_later</name>
- <uniqueName>member_is_pay_later</uniqueName>
+ <field>
+ <name>is_pay_later</name>
+ <uniqueName>member_is_pay_later</uniqueName>
<title>Is Pay Later</title>
<type>boolean</type>
<default>0</default>
<import>true</import>
<headerPattern>/(is.)?(pay(.)?later)$/i</headerPattern>
- <add>2.1</add>
+ <add>2.1</add>
</field>
- <field>
- <name>contribution_recur_id</name>
- <type>int unsigned</type>
- <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>
- <add>3.3</add>
- </field>
- <foreignKey>
- <name>contribution_recur_id</name>
- <table>civicrm_contribution_recur</table>
- <key>id</key>
- <add>3.3</add>
+ <field>
+ <name>contribution_recur_id</name>
+ <type>int unsigned</type>
+ <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>
+ <add>3.3</add>
+ </field>
+ <foreignKey>
+ <name>contribution_recur_id</name>
+ <table>civicrm_contribution_recur</table>
+ <key>id</key>
+ <add>3.3</add>
<onDelete>SET NULL</onDelete>
</foreignKey>
- <field>
- <name>campaign_id</name>
+ <field>
+ <name>campaign_id</name>
<uniqueName>member_campaign_id</uniqueName>
<type>int unsigned</type>
- <title>Campaign ID</title>
- <import>true</import>
- <comment>The campaign for which this membership is attached.</comment>
- <add>3.4</add>
- </field>
- <foreignKey>
- <name>campaign_id</name>
- <table>civicrm_campaign</table>
- <key>id</key>
+ <title>Campaign</title>
+ <import>true</import>
+ <comment>The campaign for which this membership is attached.</comment>
+ <pseudoconstant>
+ <table>civicrm_campaign</table>
+ <keyColumn>id</keyColumn>
+ <labelColumn>title</labelColumn>
+ </pseudoconstant>
+ <add>3.4</add>
+ </field>
+ <foreignKey>
+ <name>campaign_id</name>
+ <table>civicrm_campaign</table>
+ <key>id</key>
<onDelete>SET NULL</onDelete>
</foreignKey>
</table>