package public

// user env ///////////////////////////////////////////////////////////////

var Env_dept							string = GetEnvif("DEPT")
var Env_userprofile						string = GetEnvif("USERPROFILE")
var Env_username						string = GetEnvif("USERNAME")
var Env_computername					string = GetEnvif("COMPUTERNAME")
var Env_homeshare						string = GetEnvif("HOMESHARE")
var Env_userdomain						string = GetEnvif("USERDOMAIN")



// computer env /////////////////////////////////////////////////////

const Env_FreeFileSyncExe				string = `C:\Program Files (x86)\zhiwei\FreeFileSync_10.22\FreeFileSync.exe`



// AD env ///////////////////////////////////////////////////////////

const Env_MainADHostname				string = "ADSERVER"
const Env_SMBAdserver 					string = `\\` +  Env_MainADHostname + `\`
const Env_ADSoft						string = Env_SMBAdserver + "software"
const Env_ADMain						string = Env_SMBAdserver + "ADMAIN"
var   Env_ADMainDeptShare				string = Env_ADMain + `\` + Env_dept + `\` + "部门共享"
const Env_ADSfoftlike					string = Env_ADSoft  + `\` + "softlike"



// app env ////////////////////////////////////////////////////////////////

const Debug								bool   = true
const DeamonPort						string = "16823"
const DeamonListen						string = ":" + DeamonPort
const ADServerDeamon					string = Env_MainADHostname + DeamonListen
const DocuBase							string = `C:\Users\Public\Documents\AD-Control\`
const RandMax							int	   = 60


// backup env //////////////////////////////////////////////////////////////

var BackupVersion						string = "0417"
var BackupExtFile						string = ".ffs_batch"
var BackupReplaceKey					=[]byte("tengfei")



// wxwork env ///////////////////////////////////////////////////////////////

const WxworkBotLink						string = `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=59107f72-5b72-4a20-a33c-fdb1cd46f2c6`

//
//
//
//  msg msG mSg mSG Msg MsG MSg MSG 
//
//


// msg env ////////////////////////////////////////////////////////////////

const EndSign							byte    = 125
const msgerror							string = "error"


// msg type ////////////////////////////////////////////////////////////////

const Msg_Report						string = "report"
const Msg_Exec							string = "exec"
const Msg_Backup						string = "backup"



// msg report type ///////////////////////////////////////////////////////////

const Msg_Report_Offwork				string = "offwork"
const Msg_Report_OverBak				string = "overbak"


// msg backup status //////////////////////////////////////////////////////////////

const Msg_Backup_Status_Start			string = "start"
const Msg_Backup_Status_RFile			string = "rfile"
const Msg_Backup_Status_If				string = "if"
const Msg_Backup_Status_RunBak			string = "runbak"
//const Msg_Backup_Status_Over			string = "over"
const Msg_Backup_Status_Error			string = msgerror


// msg exec status ////////////////////////////////////////////////////////////////

const Msg_Exec_State_Request			string = "request"
const Msg_Exec_State_Ack				string = "ack"
const Msg_Exec_CloseWindows				string = "closewindow"
const Msg_Exec_CloseWindows_cmd			string = "shutdown -s -t 15"
const Msg_Exec_CancelCloseWindows		string = "cancelclosewindow"
const Msg_Exec_CancelCloseWindows_cmd	string = "shutdown -a"




// Basic Json Fromat ///////////////////////////////////////////////////////
type MJbase struct{
	MsgType								string `json:"msgtype"`
	//MsgStatus							string `json:"msgstatus"`
	Username 							string `json:"username"`
	Computername 						string `json:"computername"`
	Status								string `json:"status"`
	Explain								string `json:"explain"`

}
// report Json Format //////////////////////////////////////////////////////
type MJreport struct {
	MJbase
	Report								string `json:"report"`
}

// Exec Json Fromat ///////////////////////////////////////////////////////
type MJexec struct {
	MJbase
	Instruction							string `json:instruction`
	Command								string `json:"command"`
	//ExtData							string `json:"extdata"`
	IfDelay								bool   `josn:"ifDelay"`
	Delay								string `json:"delay"`
}
// backup Json Format /////////////////////////////////////////////////////
type MJbackup struct{
	MJbase
	Version								string `json:"version"`
	DiskFree							string `json:"diskfree"`
	Error								bool   `json:"error"`
	BatchFileExist						bool   `json:"batchfileexist"`
	BatchFileData						[]byte `json:"batchfiledata"`
	BatchFileName						string `json:"batchfilename"`
}
