import logging from celery import shared_task logger = logging.getLogger("celery_tasks") if not logger.handlers: _h = logging.StreamHandler() logger.addHandler(_h) logger.setLevel(logging.INFO) @shared_task(name="workers.send_email") def send_email(to: str, subject: str, body: str) -> None: if not (to and subject and body): logger.error("Email task missing fields. to=%r subject=%r body_len=%r", to, subject, len(body) if body else 0) return # Placeholder for real email sending logic logger.info("[Celery] Email sent | to=%s | subject=%s | body_len=%d", to, subject, len(body))