feat(crm): qbit-crm 0.2.0 crm_* table names #17

Merged
KofTwentyTwo merged 3 commits from feature/crm-table-names into develop 2026-10-14 16:56:20 +00:00
KofTwentyTwo commented 2026-10-14 16:40:57 +00:00 (Migrated from github.com)

Summary

qbit-crm 0.2.0 renames its tables to the crm_ snake_case standard (crm_contact, crm_consent_record, crm_email_list_member, crm_form_submission, crm_activity, crm_activity_type) with no compatibility shims. QbitCrmGateway now uses those names. Field names are unchanged (confirmed with the qbit-crm agent against QRun-IO/qbit-crm#7).

Follow-up: once qbit-crm 0.2.0-RC publishes com.kingsrook.qbits.crm.api.CrmMarketingApi (recipients, eligibility, form submissions, activities by kind, unsubscribe, recipient-scope options), the gateway becomes a thin delegate over it.

Tests

New QbitCrmGatewayTest on fixture crm_* tables: eligibility (consent, suppression, no address), crm-contact and crm-list scopes, form submissions, activity logging, and isAvailable without a CRM. ./mvnw verify green locally (all gates).

Implementation by a Sonnet subagent, reviewed and trimmed by Claude Opus.

🤖 Generated with Claude Code

## Summary qbit-crm 0.2.0 renames its tables to the `crm_` snake_case standard (crm_contact, crm_consent_record, crm_email_list_member, crm_form_submission, crm_activity, crm_activity_type) with no compatibility shims. `QbitCrmGateway` now uses those names. Field names are unchanged (confirmed with the qbit-crm agent against QRun-IO/qbit-crm#7). Follow-up: once qbit-crm 0.2.0-RC publishes `com.kingsrook.qbits.crm.api.CrmMarketingApi` (recipients, eligibility, form submissions, activities by kind, unsubscribe, recipient-scope options), the gateway becomes a thin delegate over it. ## Tests New `QbitCrmGatewayTest` on fixture `crm_*` tables: eligibility (consent, suppression, no address), crm-contact and crm-list scopes, form submissions, activity logging, and isAvailable without a CRM. `./mvnw verify` green locally (all gates). Implementation by a Sonnet subagent, reviewed and trimmed by Claude Opus. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.