Domain search + Cloudflare Registrar integration (register & point to products)
Imported from GitHub issue [El-SaMa/oma#85](https://github.com/El-SaMa/oma/issues/85) by @El-SaMa.
---
Let users search, register/transfer domains via OMA's Cloudflare account, then auto-point them to products (hosting/VPS/cPanel/Enhance).
## Feasibility (verified against current Cloudflare docs)
- Cloudflare Registrar API (beta) supports **Search**, **Check** (live price), **Register**, registration-status. After registration the domain becomes a zone in our CF account, so we point it via the Zones DNS API (A/CNAME).
- **Blockers:** (1) cannot change apex nameservers (Cloudflare NS forced) -> point via DNS records, not NS delegation; (2) reselling restricted by CF ToS -> OMA is holder-of-record; (3) beta has no transfer/renewal/contact API yet and only a subset of TLDs.
## Decisions
- **Cloudflare-first** behind a `RegistrarAdapter` abstraction so a reseller registrar (OpenSRS/Enom/ResellerClub) can be added later for apex NS delegation + true resale.
- Products that truly need apex NS delegation are flagged `requiresApexNs` and routed to the reseller/manual path.
- OMA is holder-of-record for now.
## Done
- `RegistrarAdapter` contract + capability flags (`@oma/contracts`).
- `CloudflareRegistrar` adapter (search/check/register/status/getZoneId/setDnsRecords) + `MockRegistrar` fallback + factory (`services/core-api/src/registrar.ts`).
- Product->DNS target map with `{ip}`/`{domain}` substitution + `requiresApexNs`.
- Orchestration: `searchDomainNames`, `checkDomainAvailability`, `registerDomainForOrg`, `pointDomainToProduct`.
- DB migration `0004_domains.sql`: `domains`, `domain_dns_records`, `domain_registration_events` + RLS + `updated_at` triggers.
- UI: live search under `/domains`, capability banner, "Connect to a product" card on domain detail.
- `.env.example`: `CLOUDFLARE_API_TOKEN`/`CLOUDFLARE_ACCOUNT_ID` + default registrant contact.
## Follow-ups
- [ ] Persist registrations to `domains` table + credit ledger + audit on register/point.
- [ ] Payment/contact capture in checkout before the billable register call.
- [ ] Reseller registrar adapter for apex NS delegation + transfers/renewals.
- [ ] Reconcile DNS records from Cloudflare; renewal/expiry sync job.
- [ ] ICANN registrant email verification handling.
Tracking: Hollahoop oma-portal / feature-requests.