package models

import (
	"math/rand"
	"time"
)

// NAMES - list of names 4-7 chars in length
var NAMES = []string{
	"logic",
	"warrant",
	"iconic",
	"threat",
	"strike",
	"boy",
	"vital",
	"unity",
	"audio",
	"schemer",
	"depth",
	"gravitl",
	"mystic",
	"donkey",
	"atomic",
	"turtle",
	"monkey",
	"rabbit",
	"static",
	"mosaic",
	"elite",
	"stonks",
	"doggy",
	"python",
	"mohawk",
	"arctic",
	"rival",
	"vibes",
	"delay",
	"bridge",
	"weeble",
	"combat",
	"animal",
	"wobble",
	"rubble",
	"bucket",
	"proof",
	"worker",
	"beetle",
	"racket",
	"equal",
	"panda",
	"antics",
	"strong",
	"forum",
	"koala",
	"anchor",
	"ornery",
	"indigo",
	"schism",
	"dragon",
	"knight",
	"bishop",
	"laser",
	"rhino",
	"clutch",
	"shark",
	"leader",
	"young",
	"robot",
	"squish",
	"chimp",
	"rocket",
	"space",
	"queen",
	"royalty",
	"flush",
	"earth",
	"planet",
	"heart",
	"droplet",
	"dillon",
	"saturn",
	"pluto",
	"school",
	"alien",
	"matte",
	"dingo",
	"meercat",
	"cookie",
	"snack",
	"goose",
	"pepper",
	"melissa",
	"alex",
	"elon",
	"yeet",
	"meh",
	"walrus",
	"avatar",
	"chicken",
	"proton",
	"mohawk",
	"tattoo",
	"zebra",
	"star",
	"butter",
	"tango",
	"homie",
	"rambo",
	"cosmo",
	"bubbles",
	"hulk",
	"pluto",
	"scooby",
	"thanos",
	"yoda",
	"draco",
	"goofy",
	"ditto",
	"puff",
	"duck",
	"mouse",
	"akita",
	"water",
	"hound",
	"baby",
	"spider",
	"squid",
	"roach",
	"crab",
	"cougar",
	"cyborg",
	"android",
	"being",
	"ninja",
	"unicorn",
	"zombie",
	"warrior",
	"zamboni",
	"life",
	"marine",
	"node",
	"mother",
	"father",
	"tesla",
}

// SMALL_NAMES - list of small (4 char or less) names
var SMALL_NAMES = []string{
	"ace",
	"odd",
	"hot",
	"ill",
	"root",
	"sudo",
	"moon",
	"beef",
	"bro",
	"dank",
	"red",
	"gold",
	"big",
	"old",
	"og",
	"best",
	"blue",
	"lil",
	"mom",
	"bot",
	"evil",
	"good",
	"holy",
	"rad",
	"bad",
	"sad",
	"mad",
	"chad",
	"pre",
	"post",
	"foot",
	"soft",
	"hard",
	"lite",
	"dark",
	"true",
	"toy",
	"soy",
	"rude",
	"nice",
	"fun",
	"fat",
	"pro",
	"sly",
	"tan",
	"pet",
	"fine",
	"main",
	"last",
	"wide",
	"free",
	"open",
	"poor",
	"rich",
	"next",
	"real",
	"long",
	"huge",
	"wild",
	"sick",
	"weak",
	"firm",
	"pink",
	"okay",
	"dull",
	"loud",
	"lazy",
	"dumb",
	"tidy",
	"idle",
	"bony",
	"cute",
	"oily",
	"lame",
	"mega",
	"limp",
	"wavy",
	"edgy",
	"nosy",
	"zany",
	"base",
	"cold",
}

var logoString = retrieveLogo()

// GenerateNodeName - generates a random node name
func GenerateNodeName() string {
	rand.Seed(time.Now().UnixNano())
	return SMALL_NAMES[rand.Intn(len(SMALL_NAMES))] + "-" + NAMES[seededRand.Intn(len(NAMES))]
}

// RetrieveLogo - retrieves the ascii art logo for Netmaker
func RetrieveLogo() string {
	return logoString
}

// SetLogo - sets the logo ascii art
func SetLogo(logo string) {
	logoString = logo
}

func retrieveLogo() string {
	return `              
 __   __     ______     ______   __    __     ______     __  __     ______     ______    
/\ "-.\ \   /\  ___\   /\__  _\ /\ "-./  \   /\  __ \   /\ \/ /    /\  ___\   /\  == \   
\ \ \-.  \  \ \  __\   \/_/\ \/ \ \ \-./\ \  \ \  __ \  \ \  _"-.  \ \  __\   \ \  __<   
 \ \_\\"\_\  \ \_____\    \ \_\  \ \_\ \ \_\  \ \_\ \_\  \ \_\ \_\  \ \_____\  \ \_\ \_\ 
  \/_/ \/_/   \/_____/     \/_/   \/_/  \/_/   \/_/\/_/   \/_/\/_/   \/_____/   \/_/ /_/ 
                                                                                         																							 
`
}
