package main

import (
	"github.com/gempir/go-twitch-irc/v3"
	"go.uber.org/zap"
)

func (app *Application) handlePrivateMessage(message twitch.PrivateMessage) {
	sugar := zap.NewExample().Sugar()
	defer sugar.Sync()

	// roomId is the Twitch UserID of the channel the message originated from.
	// If there is no roomId something went really wrong.
	roomId := message.Tags["room-id"]
	if roomId == "" {
		app.Logger.Errorw("Missing room-id in message tag",
			"roomId", roomId,
		)

		return
	}

	// Message was shorter than our prefix is therefore it's irrelevant for us.
	if len(message.Message) >= 2 {
		// Strip the `()` prefix
		if message.Message[:2] == "()" {
			handleCommand(message, app.TwitchClient)
			return
		}
	}

	// Message was no command so we just print it.
	app.Logger.Infow("Private Message received",
		// "message", message,
		"message.Channel", message.Channel,
		"message.User", message.User.DisplayName,
		"message.Message", message.Message,
	)

}