diff --git a/src/weekly_post.py b/src/weekly_post.py
index 27b6a2b..ef2464c 100644
--- a/src/weekly_post.py
+++ b/src/weekly_post.py
@@ -77,14 +77,6 @@ def _calculate_weekly_pay(schedule: ShiftSchedule, week_start: datetime) -> dict
def _build_pay_email_html(week_label: str, pay_record: dict) -> str:
"""Build an HTML email body for the weekly pay summary."""
- rows = ""
- for entry in pay_record["breakdown"]:
- rows += (
- f"
| {entry['day']} | {entry['date_label']} | "
- f"{entry['name']} | Ext {entry['extension']} | "
- f"${entry['rate']:.2f} |
\n"
- )
-
totals_rows = ""
for name, info in sorted(pay_record["totals"].items()):
totals_rows += (
@@ -94,14 +86,8 @@ def _build_pay_email_html(week_label: str, pay_record: dict) -> str:
return f"""
-After-Hours Pay Summary — {week_label}
+Bonus Pay Summary — {week_label}
-Shift Breakdown
-
-| Day | Date | Name | Extension | Rate |
-{rows}
-
-Totals by Person
| Name | Shifts | Rate | Total |
{totals_rows}
@@ -128,7 +114,7 @@ def _send_pay_email(week_label: str, pay_record: dict) -> None:
Source=sender,
Destination={"ToAddresses": recipients},
Message={
- "Subject": {"Data": f"After-Hours Pay Summary — {week_label}"},
+ "Subject": {"Data": f"Bonus Pay Summary — {week_label}"},
"Body": {"Html": {"Data": html_body}},
},
)
@@ -160,6 +146,8 @@ def handler(event, context):
prev_monday = prev_monday.replace(hour=0, minute=0, second=0, microsecond=0)
pay_record = _calculate_weekly_pay(schedule, prev_monday)
+ pay_dm_user = os.environ.get("PAY_REPORT_USER")
+
if pay_record["breakdown"]:
week_key = prev_monday.strftime("%Y-%m-%d")
schedule.save_pay_record(week_key, pay_record)
@@ -169,12 +157,17 @@ def handler(event, context):
pay_blocks = build_pay_summary_blocks(
week_label, pay_record["breakdown"], pay_record["totals"]
)
- slack.chat_postMessage(
- channel=channel_id,
- blocks=pay_blocks,
- text=f"After-Hours Pay — {week_label}",
- )
- logger.info("Posted pay summary for week of %s", week_key)
+
+ # DM pay report to designated user instead of channel
+ if pay_dm_user:
+ slack.chat_postMessage(
+ channel=pay_dm_user,
+ blocks=pay_blocks,
+ text=f"After-Hours Pay — {week_label}",
+ )
+ logger.info("Sent pay summary DM to %s for week of %s", pay_dm_user, week_key)
+ else:
+ logger.warning("PAY_REPORT_USER not set — skipping Slack pay summary")
# Email pay summary to payroll
_send_pay_email(week_label, pay_record)
diff --git a/template.yaml b/template.yaml
index 263c261..8191630 100644
--- a/template.yaml
+++ b/template.yaml
@@ -91,6 +91,7 @@ Resources:
SHIFT_CHANNEL_PARAM: /afterhours-shift-manager/channel-id
SES_SENDER: noreply@seahaven.com
PAYROLL_RECIPIENTS: adam@seahaven.com
+ PAY_REPORT_USER: U0A3SC48T47
TZ: !Ref Timezone
Policies:
- DynamoDBCrudPolicy: