package main

const (
	NEW_INSTANCE =			0
	RUNNING =			200
	TOOMANYREQUESTS =		429
	CLIENT_ISSUE =			600
	ONION_PROTOCOL =		601
	BAD_RESPONSE =			602
	BAD_NODEINFO =			604
)

// Parsing Unmarshal JSON type
type ReportPost struct {

	// Retrieved values
	Id			string `json:"id"`
	Url			string `json:"url"`
	Account			AccountType
	Content			string `json:"content"`
	Created_at		string `json:"created_at"`

	// Derived values
	normalized			string
	posthash			[]byte
}

type AccountType struct {
	Acct			string	`json:"acct"`
	Avatar			string	`json:"avatar"`
	Bot			bool	`json:"bot"`
	Created_at		string	`json:"created_at"`
	Display_name		string	`json:"display_name"`
	Url			string	`json:"url"`
}

// Used to report a new instance to main
type InstanceReport struct {
	endpoint		string
	status			int

	min_id			string
	numposts		int
}

// Instance's new min_id value
type RunningInstance struct {
	Endpoint		string `json:"endpoint"`
	Software		string `json:"software"`
	Min_id			string
	Status			int	`json:"status"`
	LastRun			string `json:"lastrun"`
}

type NodeInfoSoftware struct {
	Name			string	`json:"name"`
	Version			string	`json:"version"`
}

type NodeInfo struct {
	Software		NodeInfoSoftware `json:"software"`
}

type CommandMap struct {
	Type            string `json:"Type"`
	Endpoint        string `json:"Endpoint"`
}

type ResponseBack struct {
	Type			string `json:"Type"`
	Message			string `json:"Message"`
	RunningInstances	[]RunningInstance `json:"RunningInstances"`
}