package config

// Various hard-coded enums such as choice of gender, sexuality, relationship status etc.
var (
	MaritalStatus = []string{
		"Single",
		"Married",
		"In a relationship",
		"It's complicated",
		"Divorced",
		"Widowed",
		"Widower",
	}

	RelationshipType = []string{
		"Monogamous",
		"Open",
	}

	Gender = []string{
		"Man",
		"Woman",
		"Non-binary",
		"Trans",
		"Trans (FTM)",
		"Trans (MTF)",
		"Other",
	}

	Orientation = []string{
		"Straight",
		"Gay",
		"Bisexual",
		"Bicurious",
	}

	HereFor = []string{
		"Dating", "Relationship", "Platonic friends",
		"Networking", "Casual acquaintances", "Hookups",
		"Chat room", "Forums", "Galleries",
		"Exhibitionism", "Voyeurism", "Couch surfing",
	}

	// Enums all wrapped up for template use.
	ProfileEnums = map[string][]string{
		"MaritalStatus":    MaritalStatus,
		"RelationshipType": RelationshipType,
		"Gender":           Gender,
		"Orientation":      Orientation,
		"HereFor":          HereFor,
	}

	// Input field names for profile fields.
	ProfileFields = []string{
		"gender",
		"pronouns",
		"city",
		"job",
		"orientation",
		"marital_status",
		"relationship_type",
		"about_me",
		"interests",
		"music_movies",
		"hide_age",
	}

	// Site preference names (stored in ProfileField table)
	SitePreferenceFields = []string{
		"dm_privacy",
		"blur_explicit",
	}

	// Choices for the Contact Us subject
	ContactUsChoices = []ContactUs{
		{
			Header: "Website Feedback",
			Options: []Option{
				{"feedback", "Website feedback"},
				{"feature", "Make a feature request"},
				{"bug", "Report a bug or broken feature"},
				{"other", "General/miscellaneous/other"},
			},
		},
		{
			Header: "Report a Problem",
			Options: []Option{
				{"report.user", "Report a problematic user"},
				{"report.photo", "Report a problematic photo"},
				{"report.message", "Report a direct message conversation"},
				{"report.comment", "Report a forum post or comment"},
			},
		},
	}

	// Default forum categories for forum landing page.
	ForumCategories = []string{
		"Rules and Announcements",
		"The Inner Circle",
		"Nudists",
		"Exhibitionists",
		"Photo Boards",
		"Anything Goes",
	}
)

// ContactUs choices for the subject drop-down.
type ContactUs struct {
	Header  string
	Options []Option
}

// Option for select boxes.
type Option struct {
	Value string
	Label string
}

// NotificationOptout field values (stored in user ProfileField table)
const (
	NotificationOptOutFriendPhotos          = "notif_optout_friends_photos"
	NotificationOptOutPrivatePhotos         = "notif_optout_private_photos"
	NotificationOptOutExplicitPhotos        = "notif_optout_explicit_photos"
	NotificationOptOutLikes                 = "notif_optout_likes"
	NotificationOptOutComments              = "notif_optout_comments"
	NotificationOptOutSubscriptions         = "notif_optout_subscriptions"
	NotificationOptOutFriendRequestAccepted = "notif_optout_friend_request_accepted"
	NotificationOptOutPrivateGrant          = "notif_optout_private_grant"
)

// Notification opt-outs (stored in ProfileField table)
var NotificationOptOutFields = []string{
	NotificationOptOutFriendPhotos,
	NotificationOptOutPrivatePhotos,
	NotificationOptOutExplicitPhotos,
	NotificationOptOutLikes,
	NotificationOptOutComments,
	NotificationOptOutSubscriptions,
	NotificationOptOutFriendRequestAccepted,
	NotificationOptOutPrivateGrant,
}
