35 lines
1.5 KiB
Python
35 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from govoplan_core.core.modules import ModuleContext
|
|
from govoplan_files.backend.runtime import configure_runtime
|
|
from govoplan_files.backend.storage.campaign_attachments import (
|
|
annotate_built_messages_with_managed_files,
|
|
managed_match_payloads,
|
|
prepared_campaign_snapshot,
|
|
public_attachment_summary_payload,
|
|
)
|
|
from govoplan_files.backend.storage.campaign_usage import record_campaign_attachment_uses_for_jobs
|
|
from govoplan_files.backend.storage.files import current_version_and_blob
|
|
|
|
|
|
class FilesCampaignCapability:
|
|
prepared_campaign_snapshot = staticmethod(prepared_campaign_snapshot)
|
|
managed_match_payloads = staticmethod(managed_match_payloads)
|
|
public_attachment_summary_payload = staticmethod(public_attachment_summary_payload)
|
|
annotate_built_messages_with_managed_files = staticmethod(annotate_built_messages_with_managed_files)
|
|
record_campaign_attachment_uses_for_jobs = staticmethod(record_campaign_attachment_uses_for_jobs)
|
|
current_version_and_blob = staticmethod(current_version_and_blob)
|
|
|
|
@staticmethod
|
|
def mark_job_attachment_uses_sent(session: Any, job: Any) -> None:
|
|
from govoplan_files.backend.storage.campaign_usage import mark_job_attachment_uses_sent
|
|
|
|
mark_job_attachment_uses_sent(session, job)
|
|
|
|
|
|
def campaign_capability(context: ModuleContext) -> FilesCampaignCapability:
|
|
configure_runtime(settings=context.settings)
|
|
return FilesCampaignCapability()
|