forked from LiveCarta/ContentAutomation
22 lines
588 B
Python
22 lines
588 B
Python
from __future__ import annotations
|
|
|
|
from typing import Any, Protocol
|
|
|
|
from content_automation.models import PublishedContentRecord
|
|
|
|
|
|
class SocialNetworkAdapter(Protocol):
|
|
"""Contract for social network posting adapters."""
|
|
|
|
name: str
|
|
|
|
def post_media(self, media_url: str, caption: str) -> Any:
|
|
"""Publish media and return a provider response payload."""
|
|
|
|
|
|
class PublishedContentStore(Protocol):
|
|
"""Contract for persisting publish operation metadata."""
|
|
|
|
def save(self, record: PublishedContentRecord) -> None:
|
|
"""Persist a published content record."""
|