from uuid import UUID from infrastructure.sqs_client import SqsClient class Address2UprnQueueClient(SqsClient): """SQS client that publishes Address-to-UPRN fan-out messages. The body shape is fixed by the downstream consumer: ``{"task_id": str, "sub_task_id": str, "s3_uri": str}`` """ def publish( self, *, parent_task_id: UUID, child_subtask_id: UUID, s3_uri: str, ) -> str: """Send a typed Address-to-UPRN message. Returns the SQS ``MessageId``.""" return self.send( { "task_id": str(parent_task_id), "sub_task_id": str(child_subtask_id), "s3_uri": s3_uri, } )