package messenger

// Defines the different sizes available when setting up a CallToActionsItem
// of type "web_url". These values can be used in the "WebviewHeightRatio"
// field.
const (
	// WebviewCompact opens the page in a web view that takes half the screen
	// and covers only part of the conversation.
	WebviewCompact = "compact"

	// WebviewTall opens the page in a web view that covers about 75% of the
	// conversation.
	WebviewTall = "tall"

	// WebviewFull opens the page in a web view that completely covers the
	// conversation, and has a "back" button instead of a "close" one.
	WebviewFull = "full"
)

// GreetingSetting is the setting for greeting message
type GreetingSetting struct {
	SettingType string       `json:"setting_type"`
	Greeting    GreetingInfo `json:"greeting"`
}

// GreetingInfo contains greeting message
type GreetingInfo struct {
	Text string `json:"text"`
}

// CallToActionsSetting is the settings for Get Started and Persist Menu
type CallToActionsSetting struct {
	SettingType   string              `json:"setting_type"`
	ThreadState   string              `json:"thread_state"`
	CallToActions []CallToActionsItem `json:"call_to_actions"`
}

// CallToActionsItem contains Get Started button or item of Persist Menu
type CallToActionsItem struct {
	Type               string `json:"type,omitempty"`
	Title              string `json:"title,omitempty"`
	Payload            string `json:"payload,omitempty"`
	URL                string `json:"url,omitempty"`
	WebviewHeightRatio string `json:"webview_height_ratio,omitempty"`
	MessengerExtension bool   `json:"messenger_extensions,omitempty"`
}

// HomeURL is the settings for EnableChatExtension
// https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/home-url
type HomeURL struct {
	URL                string `json:"url,omitempty"`
	WebviewHeightRatio string `json:"webview_height_ratio,omitempty"`
	WebviewShareButton string `json:"webview_share_button,omitempty"`
	InTest             bool   `json:"in_test,omitempty"`
}