feat(inboxes): persist chatwoot working hours

This commit is contained in:
2026-06-05 05:19:36 +08:00
parent ff98202c38
commit 945782eb03
8 changed files with 347 additions and 75 deletions
+20 -1
View File
@@ -32,7 +32,7 @@ func serializeInbox(inbox *model.Inbox) map[string]any {
"enable_auto_assignment": inbox.EnableAutoAssignment,
"auto_assignment_config": configValue(config, "auto_assignment_config"),
"out_of_office_message": inbox.OutOfOfficeMessage,
"working_hours": configArray(config, "working_hours"),
"working_hours": serializeInboxWorkingHours(inbox, config),
"timezone": inbox.Timezone,
"callback_webhook_url": configValue(config, "callback_webhook_url"),
"allow_messages_after_resolved": inbox.AllowMessagesAfterResolved,
@@ -96,6 +96,25 @@ func serializeInbox(inbox *model.Inbox) map[string]any {
return payload
}
func serializeInboxWorkingHours(inbox *model.Inbox, config map[string]any) any {
if len(inbox.WorkingHours) == 0 {
return configArray(config, "working_hours")
}
payload := make([]any, 0, len(inbox.WorkingHours))
for _, wh := range inbox.WorkingHours {
payload = append(payload, map[string]any{
"day_of_week": wh.DayOfWeek,
"closed_all_day": wh.ClosedAllDay,
"open_hour": wh.OpenHour,
"open_minutes": wh.OpenMinutes,
"close_hour": wh.CloseHour,
"close_minutes": wh.CloseMinutes,
"open_all_day": wh.OpenAllDay,
})
}
return payload
}
func chatwootChannelType(channelType string) string {
if strings.HasPrefix(channelType, "Channel::") {
return channelType