Add Django site, Docker packaging, and beta/prod Gitea deploys.
Deploy Beta / unit-tests (push) Successful in 9s
Deploy Beta / docker (push) Successful in 17s
Deploy Beta / deploy-beta (push) Successful in 2m31s

Unignore site/ (was blocked by mkdocs /site rule), add compose/Docker/uv tooling, and split deploys so push to main goes to beta while prod stays manual.
This commit is contained in:
2026-08-08 07:32:55 -05:00
parent 7dca98bbf6
commit 1f7d78de64
204 changed files with 21662 additions and 70 deletions
+29
View File
@@ -0,0 +1,29 @@
"""Channel dispatch — email / SMS / postcard."""
from dataclasses import dataclass
from contacts.models import Channel
from messaging.models import Message
from messaging.providers.email.smtp2go import send_email
from messaging.providers.postcard import get_postcard_provider
from messaging.providers.sms.smtp2go import send_sms
@dataclass
class ProviderResult:
provider: str
provider_id: str
def dispatch_message(message: Message) -> ProviderResult:
if message.channel == Channel.EMAIL:
result = send_email(message)
return ProviderResult(provider="smtp2go_email", provider_id=result)
if message.channel == Channel.SMS:
result = send_sms(message)
return ProviderResult(provider="smtp2go_sms", provider_id=result)
if message.channel == Channel.POSTCARD:
provider = get_postcard_provider()
result = provider.send_postcard(message)
return ProviderResult(provider=provider.name, provider_id=result.provider_id)
raise ValueError(f"Unsupported channel: {message.channel}")