Files
westfarnandCursor 787f0e48fb Populate the client website template with catalog feature flags.
Extract always-on public/portal/UTM plus optional email_sms, directmail, blog, payments, social, and social_ai so new client sites can be bootstrapped from this seed.

Refs #1
Refs #2

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 07:55:26 -05:00

43 lines
1.0 KiB
Python

"""Pluggable postcard providers."""
from dataclasses import dataclass
from typing import Protocol
from django.conf import settings
@dataclass
class PostcardResult:
provider_id: str
class PostcardProvider(Protocol):
name: str
def send_postcard(self, message) -> PostcardResult: ...
def get_status(self, provider_id: str) -> str: ...
def get_postcard_provider() -> PostcardProvider:
name = (settings.POSTCARD_PROVIDER or "pcm").lower()
if name == "pcm":
from directmail.providers.postcard.pcm import PcmProvider
return PcmProvider()
if name == "click2mail":
from directmail.providers.postcard.click2mail import Click2MailProvider
return Click2MailProvider()
if name == "postgrid":
from directmail.providers.postcard.postgrid import PostGridProvider
return PostGridProvider()
if name == "lob":
from directmail.providers.postcard.lob import LobProvider
return LobProvider()
from directmail.providers.postcard.pcm import PcmProvider
return PcmProvider()