package tbotopenai

import (
	"bytes"
	"errors"
	"strconv"
	"strings"
)

const (
	respBodySessionIsAlreadyExist = `‚ö† –°–µ—Å—Å–∏—è —Å –±–æ—Ç–æ–º —É–∂–µ –∞–∫—Ç–∏–≤–Ω–∞ ‚ö† 
üîß /help - –æ–ø–∏—Å–∞–Ω–∏–µ –∫–æ–º–∞–Ω–¥`
	respBodySessionCreated = `üéâ –°–µ—Å—Å–∏—è –∞–∫—Ç–∏–≤–Ω–∞, –¥–æ–±—Ä–æ –ø–æ–∂–∞–ª–æ–≤–∞—Ç—å! üéâ
üîß /help - –æ–ø–∏—Å–∞–Ω–∏–µ –∫–æ–º–∞–Ω–¥`
	respBodySessionRemoved    = `üò• –°–µ—Å—Å–∏—è —Å –±–æ—Ç–æ–º –∑–∞–≤–µ—Ä—à–µ–Ω–∞. –í–æ–∑–≤—Ä–∞—â–∞–π—Ç–µ—Å—å! üò•`
	respBodySessionIsNotExist = `‚ùå –°–µ—Å—Å–∏—è —Å –±–æ—Ç–æ–º –Ω–µ –∞–∫—Ç–∏–≤–Ω–∞ ‚ùå
‚úÖ /start - –Ω–∞—á–∞–ª–æ —Å–µ—Å—Å–∏–∏ —Å –±–æ—Ç–æ–º
üîß /help - –æ–ø–∏—Å–∞–Ω–∏–µ –∫–æ–º–∞–Ω–¥`
	respBodyCommandChatGPT = `üìñ –ì–µ–Ω–µ—Ä–∞—Ü–∏—è —Ç–µ–∫—Å—Ç–∞ —Å –ø–æ–º–æ—â—å—é ChatGPT, –º–æ–¥–µ–ª—å gpt-4.0 üìñ
–í–≤–µ–¥–∏—Ç–µ –∑–∞–ø—Ä–æ—Å –∫–∞–∫ –º–æ–∂–Ω–æ –ø–æ–¥—Ä–æ–±–Ω–µ–µ, —á—Ç–æ–±—ã –ø–æ–ª—É—á–∏—Ç—å –Ω–∞–∏–±–æ–ª–µ–µ —É–¥–æ–≤–ª–µ—Ç–≤–æ—Ä–∏—Ç–µ–ª—å–Ω—ã–π —Å–≥–µ–Ω–µ—Ä–∏—Ä–æ–≤–∞–Ω–Ω—ã–π —Ç–µ–∫—Å—Ç–æ–≤—ã–π –æ—Ç–≤–µ—Ç`
	respBodyCommandOpenAIText = `üìñ –ì–µ–Ω–µ—Ä–∞—Ü–∏—è —Ç–µ–∫—Å—Ç–∞ —Å –ø–æ–º–æ—â—å—é OpenAI, –º–æ–¥–µ–ª—å gpt-4-32k-0613 üìñ
–í–≤–µ–¥–∏—Ç–µ –∑–∞–ø—Ä–æ—Å –∫–∞–∫ –º–æ–∂–Ω–æ –ø–æ–¥—Ä–æ–±–Ω–µ–µ, —á—Ç–æ–±—ã –ø–æ–ª—É—á–∏—Ç—å –Ω–∞–∏–±–æ–ª–µ–µ —É–¥–æ–≤–ª–µ—Ç–≤–æ—Ä–∏—Ç–µ–ª—å–Ω—ã–π —Å–≥–µ–Ω–µ—Ä–∏—Ä–æ–≤–∞–Ω–Ω—ã–π —Ç–µ–∫—Å—Ç–æ–≤—ã–π –æ—Ç–≤–µ—Ç`
	respBodyCommandOpenAIImage = `üåÑ –ì–µ–Ω–µ—Ä–∞—Ü–∏—è –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏–π —Å –ø–æ–º–æ—â—å—é OpenAI üåÑ
–í–≤–µ–¥–∏—Ç–µ –∑–∞–ø—Ä–æ—Å –∫–∞–∫ –º–æ–∂–Ω–æ –ø–æ–¥—Ä–æ–±–Ω–µ–µ, —á—Ç–æ–±—ã –ø–æ–ª—É—á–∏—Ç—å –Ω–∞–∏–±–æ–ª–µ–µ —É–¥–æ–≤–ª–µ—Ç–≤–æ—Ä–∏—Ç–µ–ª—å–Ω–æ–µ —Å–≥–µ–Ω–µ—Ä–∏—Ä–æ–≤–∞–Ω–Ω–æ–µ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏–µ`
	respBodyCommandDreamBooth = `üåÖ –í—ã–±—Ä–∞–Ω–∞ –≥–µ–Ω–µ—Ä–∞—Ü–∏—è –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏–π —Å –ø–æ–º–æ—â—å—é DreamBooth üåÖ
‚ö† –î–ª—è –ª—É—á—à–µ–≥–æ —Ä–µ–∑—É–ª—å—Ç–∞—Ç–∞ –æ–∑–Ω–∞–∫–æ–º—å—Ç–µ—Å—å —Å –¥–æ–∫—É–º–µ–Ω—Ç–∞—Ü–∏–µ–π https://stablediffusionapi.com/docs/community-models-api-v4/dreamboothtext2img#body-attributes ‚ö†
üìÑ /dreamBoothExample - –ø—Ä–∏–º–µ—Ä –ø—Ä–æ–º–ø—Ç–∞ –¥–ª—è –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è —á–µ—Ä–µ–∑ API DreamBooth`
	respBodyUndefinedJob = `‚ùå –ù–µ –≤—ã–±—Ä–∞–Ω–∞ –∫–æ–º–∞–Ω–¥–∞ –¥–ª—è –≤—ã–ø–æ–ª–Ω–µ–Ω–∏—è –∑–∞–¥–∞—á–∏ ‚ùå
üîß /help - –æ–ø–∏—Å–∞–Ω–∏–µ –∫–æ–º–∞–Ω–¥`
	respBodyUndefinedCommand = `‚ùå –ö–æ–º–º–∞–Ω–¥–∞ –Ω–µ –ø–æ–¥–¥–µ—Ä–∂–∏–≤–∞–µ—Ç—Å—è ‚ùå
–ß—Ç–æ–±—ã –ø–æ—Å–º–æ—Ç—Ä–µ—Ç—å –æ–ø–∏—Å–∞–Ω–∏–µ –∫–æ–º–∞–Ω–¥, –≤–≤–µ–¥–∏—Ç–µ –∫–æ–º–∞–Ω–¥—É /help`
	respBodyAccessDenied             = `‚ùå –î–æ—Å—Ç—É–ø –∑–∞–ø—Ä–µ—â–µ–Ω ‚ùå`
	respBodyCommandDreamBoothExample = `prompt: Iron Man, (Arnold Tsang, Toru Nakayama), Masterpiece, Studio Quality, 6k , toa, toaair, 1boy, glowing, axe, mecha, science_fiction, solo, weapon, jungle , green_background, nature, outdoors, solo, tree, weapon, mask, dynamic lighting, detailed shading, digital texture painting
negative_prompt: un-detailed skin, semi-realistic, cgi, 3d, render, sketch, cartoon, drawing, ugly eyes, (out of frame:1.3), worst quality, low quality, jpeg artifacts, cgi, sketch, cartoon, drawing, (out of frame:1.1)
width: 512
height: 512
model_id: midjourney`
	respBodyInputJobID = `üìõ –í–≤–µ–¥–∏—Ç–µ –Ω–æ–º–µ—Ä –∑–∞–ø—Ä–æ—Å–∞ üìõ
üìã /listJobs - —Å–ø–∏—Å–æ–∫ –≤—ã–ø–æ–ª–Ω—è—é—â–∏—Ö—Å—è –∑–∞–ø—Ä–æ—Å–æ–≤ –≤ –æ—á–µ—Ä–µ–¥–∏`
	respBodyRequestAddedToQueue               = `‚úÖ –ó–∞–ø—Ä–æ—Å –¥–æ–±–∞–≤–ª–µ–Ω –≤ –æ—á–µ—Ä–µ–¥—å ‚úÖ`
	respBodyStatsCommand                      = `‚ò£ –ó–¥–µ—Å—å –¥–æ–ª–∂–µ–Ω –±—ã—Ç—å —Ñ–∞–π–ª —Å–æ —Å—Ç–∞—Ç–∏—Å—Ç–∏–∫–æ–π –∑–∞–ø—Ä–æ—Å–æ–≤ –∏ –æ—Ç–≤–µ—Ç–æ–≤ ‚ò£`
	respBodyCommandBan                        = `üåÑ –í–≤–µ–¥–∏—Ç–µ –∏–º—è –ø–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—è –¥–ª—è –±–∞–Ω–∞ üåÑ`
	respBodyCommandUnban                      = `üåÑ –í–≤–µ–¥–∏—Ç–µ –∏–º—è –ø–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—è –¥–ª—è —Ä–∞–∑–±–∞–Ω–∞ üåÑ`
	respBodyRequestBan                        = `‚úÖ –ü–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—å –∑–∞–±–∞–Ω–µ–Ω ‚úÖ`
	respBodyRequestUnban                      = `‚úÖ –ü–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—å —Ä–∞–∑–±–∞–Ω–µ–Ω ‚úÖ`
	respBodyCommandFusionBrain                = `üåÖ –í—ã–±—Ä–∞–Ω–∞ –≥–µ–Ω–µ—Ä–∞—Ü–∏—è –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏–π —Å –ø–æ–º–æ—â—å—é FusionBrain üåÖ`
	respErrBodyRequestBan                     = `‚ùå –ü—Ä–æ–∏–∑–æ—à–ª–∞ –æ—à–∏–±–∫–∞ –ø—Ä–∏ –±–∞–Ω–µ –ø–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—è ‚ùå`
	respErrBodyRequestUnban                   = `‚ùå –ü—Ä–æ–∏–∑–æ—à–ª–∞ –æ—à–∏–±–∫–∞ –ø—Ä–∏ —Ä–∞–∑–±–∞–Ω–µ –ø–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—è ‚ùå`
	respErrBodyRequestUnbanUsernameIsNotExist = `‚ùå –ü–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—è –Ω–µ—Ç –≤ —á–µ—Ä–Ω–æ–º —Å–ø–∏—Å–∫–µ ‚ùå`
	respErrBodyRequestBanUsernameAlreadyExist = `‚ùå –ü–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—å —É–∂–µ –µ—Å—Ç—å –≤ —á–µ—Ä–Ω–æ–º —Å–ø–∏—Å–∫–µ ‚ùå`
	respErrBodyLimitMessages                  = `‚ùå –°–µ—Ä–≤–∏—Å –ø–µ—Ä–µ–≥—Ä—É–∂–µ–Ω –∑–∞–ø—Ä–æ—Å–∞–º–∏ ‚ùå
–ü–æ–∂–∞–ª—É–π—Å—Ç–∞, –≤—ã–ø–æ–ª–Ω–∏—Ç–µ –∑–∞–ø—Ä–æ—Å –ø–æ–∑–∂–µ`
	respErrBodyLimitJobs = `‚ùå –ü—Ä–µ–≤—ã—à–µ–Ω –ª–∏–º–∏—Ç –∑–∞–ø—Ä–æ—Å–æ–≤ ‚ùå
–ü–æ–∂–∞–ª—É–π—Å—Ç–∞, –¥–æ–∂–¥–∏—Ç–µ—Å—å –≤—ã–ø–æ–ª–Ω–µ–Ω–∏—è –ø—Ä–æ—à–ª—ã—Ö –∏ –ø–æ–≤—Ç–æ—Ä–∏—Ç–µ`
	respErrBodyInvalidFormatJobID = `‚ùå –ù–æ–º–µ—Ä –∑–∞–¥–∞—á–∏ –¥–æ–ª–∂–µ–Ω –±—ã—Ç—å —á–∏—Å–ª–æ–º ‚ùå`
	respErrBodyChatGPT            = `‚ùå –ü—Ä–æ–∏–∑–æ—à–ª–∞ –æ—à–∏–±–∫–∞ –ø—Ä–∏ –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –æ—Ç–≤–µ—Ç–∞ ChatGPT ‚ùå
–ü–æ–ø—Ä–æ–±—É–π—Ç–µ –µ—â–µ —Ä–∞–∑`
	respErrBodyOpenAI = `‚ùå –ü—Ä–æ–∏–∑–æ—à–ª–∞ –æ—à–∏–±–∫–∞ –ø—Ä–∏ –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –æ—Ç–≤–µ—Ç–∞ OpenAI ‚ùå
–ü–æ–ø—Ä–æ–±—É–π—Ç–µ –µ—â–µ —Ä–∞–∑`
	respErrBodyDreamBoothByStatusCode = `‚ùå –ü—Ä–æ–∏–∑–æ—à–ª–∞ –æ—à–∏–±–∫–∞ –ø—Ä–∏ –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –æ—Ç–≤–µ—Ç–∞ DreamBooth ‚ùå
–ö —Å–æ–∂–∞–ª–µ–Ω–∏—é, –≤ –¥–∞–Ω–Ω—ã–π –º–æ–º–µ–Ω—Ç —Å–µ—Ä–≤–∏—Å DreamBooth –Ω–µ —Ä–∞–±–æ—Ç–∞–µ—Ç, –ø–æ–ø—Ä–æ–±—É–π—Ç–µ –≤—ã–ø–æ–ª–Ω–∏—Ç—å –∑–∞–ø—Ä–æ—Å –ø–æ–∑–∂–µ`
	respErrBodyDreamBooth = `‚ùå –ü—Ä–æ–∏–∑–æ—à–ª–∞ –æ—à–∏–±–∫–∞ –ø—Ä–∏ –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è DreamBooth ‚ùå
–ü–æ–ø—Ä–æ–±—É–π—Ç–µ –µ—â–µ —Ä–∞–∑`
	respErrBodyFusionBrain = `‚ùå –ü—Ä–æ–∏–∑–æ—à–ª–∞ –æ—à–∏–±–∫–∞ –ø—Ä–∏ –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è FusionBrain ‚ùå
–ü–æ–ø—Ä–æ–±—É–π—Ç–µ –µ—â–µ —Ä–∞–∑`
	respErrBodyJobCanceled = `‚úÖ –ó–∞–ø—Ä–æ—Å –±—ã–ª –æ—Ç–º–µ–Ω–µ–Ω ‚úÖ`
	respErrBodyGetLogs     = `‚ùå –ü—Ä–æ–∏–∑–æ—à–ª–∞ –æ—à–∏–±–∫–∞ –ø—Ä–∏ –ø–æ–ª—É—á–µ–Ω–∏–∏ –ª–æ–≥–æ–≤ ‚ùå`
)

var (
	respBodyFusionBrainInput = []string{
		`–ù–∞–ø–∏—à–∏—Ç–µ, –∫–∞–∫–∏–µ —Ü–≤–µ—Ç–∞ –∏ –ø—Ä–∏—ë–º—ã –º–æ–¥–µ–ª—å –¥–æ–ª–∂–Ω–∞ –∏—Å–ø–æ–ª—å–∑–æ–≤–∞—Ç—å –ø—Ä–∏ –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è.
–ù–∞–ø—Ä–∏–º–µ—Ä: –ü—É—à–∏—Å—Ç—ã–π –∫–æ—Ç –≤ –æ—á–∫–∞—Ö`,
		`–ö–∞–∫–∏–µ —Ü–≤–µ—Ç–∞ –∏ –ø—Ä–∏—ë–º—ã –º–æ–¥–µ–ª—å –Ω–µ –¥–æ–ª–∂–Ω–∞ –∏—Å–ø–æ–ª—å–∑–æ–≤–∞—Ç—å –ø—Ä–∏ –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è? –í–≤–µ–¥–∏—Ç–µ -, —á—Ç–æ–±—ã –Ω–µ –∑–∞–¥–∞–≤–∞—Ç—å
–ù–∞–ø—Ä–∏–º–µ—Ä: —è—Ä–∫–∏–µ —Ü–≤–µ—Ç–∞, –∫–∏—Å–ª–æ—Ç–Ω–æ—Å—Ç—å, –≤—ã—Å–æ–∫–∞—è –∫–æ–Ω—Ç—Ä–∞—Å—Ç–Ω–æ—Å—Ç—å`,
		`–î–ª–∏–Ω–∞ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è (–º–∞–∫—Å–∏–º–∞–ª—å–Ω–∞—è 1024), –ø–æ-—É–º–æ–ª—á–∞–Ω–∏—é 512. –í–≤–µ–¥–∏—Ç–µ 0, —á—Ç–æ–±—ã –Ω–µ –∑–∞–¥–∞–≤–∞—Ç—å`,
		`–®–∏—Ä–∏–Ω–∞ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è (–º–∞–∫—Å–∏–º–∞–ª—å–Ω–∞—è 1024), –ø–æ-—É–º–æ–ª—á–∞–Ω–∏—é 512. –í–≤–µ–¥–∏—Ç–µ 0, —á—Ç–æ–±—ã –Ω–µ –∑–∞–¥–∞–≤–∞—Ç—å`,
		`–°—Ç–∏–ª—å –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è (–ø–æ-—É–º–æ–ª—á–∞–Ω–∏—é –±—É–¥–µ—Ç DEFAULT). –í–≤–µ–¥–∏—Ç–µ *, —á—Ç–æ–±—ã –Ω–µ –∑–∞–¥–∞–≤–∞—Ç—å
–ü—Ä–∏–º–µ—Ä—ã:
- KANDINSKY https://cdn.fusionbrain.ai/static/download/img-style-kandinsky.png
- UHD https://cdn.fusionbrain.ai/static/download/img-style-detail-photo.png
- ANIME https://cdn.fusionbrain.ai/static/download/img-style-anime.png
- DEFAULT https://cdn.fusionbrain.ai/static/download/img-style-personal.png`,
	}
)

func respErrBodyCommandDreamBooth(err error) string {
	if errors.Is(err, errDBInvalidRespCode) {
		return respErrBodyDreamBoothByStatusCode
	}
	return respErrBodyDreamBooth
}

func respErrBodyJobIsNotExist(jobID int) []byte {
	var b bytes.Buffer
	b.WriteString("–ó–∞–¥–∞—á–∞ ‚Ññ")
	b.WriteString(strconv.Itoa(jobID))
	b.WriteString(" –Ω–µ –Ω–∞–π–¥–µ–Ω–∞")
	return b.Bytes()
}

func respBodySuccessCancelJob(api string, jobID int) []byte {
	var b bytes.Buffer
	b.WriteString("–ó–∞–¥–∞—á–∞ ")
	b.WriteString(api)
	b.WriteString(" ‚Ññ")
	b.WriteString(strconv.Itoa(jobID))
	b.WriteString(" –∑–∞–≤–µ—Ä—à–µ–Ω–∞.\n")
	b.WriteString(respBodyInputJobID)
	return b.Bytes()
}

func respBodyListJobs(textJobIDs, imgJobIDs, openAIIDs, fusionBrainIDs []int, role string) string {
	var b strings.Builder
	b.WriteString("–°–ø–∏—Å–æ–∫ –∑–∞–¥–∞—á ChatGPT:\r\n")
	for i := range textJobIDs {
		b.WriteString(strconv.Itoa(textJobIDs[i]))
		b.WriteString("\r\n")
	}
	if role == roleAdmin {
		b.WriteString("–°–ø–∏—Å–æ–∫ –∑–∞–¥–∞—á DreamBooth:\r\n")
		for i := range imgJobIDs {
			b.WriteString(strconv.Itoa(imgJobIDs[i]))
			b.WriteString("\r\n")
		}
		b.WriteString("–°–ø–∏—Å–æ–∫ –∑–∞–¥–∞—á OpenAI:\r\n")
		for i := range openAIIDs {
			b.WriteString(strconv.Itoa(openAIIDs[i]))
			b.WriteString("\r\n")
		}
	}
	b.WriteString("–°–ø–∏—Å–æ–∫ –∑–∞–¥–∞—á FusionBrain:\r\n")
	for i := range fusionBrainIDs {
		b.WriteString(strconv.Itoa(fusionBrainIDs[i]))
		b.WriteString("\r\n")
	}
	return b.String()
}

func respBodyCommandHelp(role string) string {
	var b strings.Builder
	b.WriteString(`üîß –î–æ—Å—Ç—É–ø–Ω—ã–µ –∫–æ–º–∞–Ω–¥—ã –±–æ—Ç–∞ üîß
‚úÖ /start - –Ω–∞—á–∞–ª–æ —Å–µ—Å—Å–∏–∏ —Å –±–æ—Ç–æ–º
‚õî /stop - –∑–∞–≤–µ—Ä—à–µ–Ω–∏–µ —Å–µ—Å—Å–∏–∏ —Å –±–æ—Ç–æ–º
üìñ /chatGPT - –≥–µ–Ω–µ—Ä–∞—Ü–∏—è —Ç–µ–∫—Å—Ç–∞, –∏—Å–ø–æ–ª—å–∑—É—è API —Ä–µ—Å—É—Ä—Å–∞ gpt-chatbot.ru (–ú–æ–¥–µ–ª—å gpt-4.0)
üåÖ /fusionBrain - –ø—Ä–æ–¥–≤–∏–Ω—É—Ç–∞—è –≥–µ–Ω–µ—Ä–∞—Ü–∏—è –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏–π, –∏—Å–ø–æ–ª—å–∑—É—è API FusionBrain
`)
	if role == roleAdmin {
		b.WriteString(`üìñ /openAIText - –≥–µ–Ω–µ—Ä–∞—Ü–∏—è —Ç–µ–∫—Å—Ç–∞, –∏—Å–ø–æ–ª—å–∑—É—è API OpenAI (–ú–æ–¥–µ–ª—å gpt-4-32k-0613)
üåÑ /openAIImage - –≥–µ–Ω–µ—Ä–∞—Ü–∏—è –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è —Ä–∞–∑–º–µ—Ä–æ–º 1024x1024, –∏—Å–ø–æ–ª—å–∑—É—è API OpenAI
üåÖ /dreamBooth - –ø—Ä–æ–¥–≤–∏–Ω—É—Ç–∞—è –≥–µ–Ω–µ—Ä–∞—Ü–∏—è –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏–π, –∏—Å–ø–æ–ª—å–∑—É—è API DreamBooth
üìÑ /dreamBoothExample - –ø—Ä–∏–º–µ—Ä –ø—Ä–æ–º–ø—Ç–∞ –¥–ª—è –≥–µ–Ω–µ—Ä–∞—Ü–∏–∏ –∏–∑–æ–±—Ä–∞–∂–µ–Ω–∏—è —á–µ—Ä–µ–∑ API DreamBooth
`)
	}
	b.WriteString(`üìõ /cancelJob - –æ—Ç–º–µ–Ω–∞ —Ç–µ–∫—É—â–µ–≥–æ –∑–∞–ø—Ä–æ—Å–∞ –ø–æ –µ–µ –Ω–æ–º–µ—Ä—É
üìã /listJobs - —Å–ø–∏—Å–æ–∫ –≤—ã–ø–æ–ª–Ω—è—é—â–∏—Ö—Å—è –∑–∞–ø—Ä–æ—Å–æ–≤ –≤ –æ—á–µ—Ä–µ–¥–∏
`)
	if role == roleAdmin {
		b.WriteString(`üìà /stats - —Å—Ç–∞—Ç–∏—Å—Ç–∏–∫–∞ –∑–∞–ø—Ä–æ—Å–æ–≤ –∏ –æ—Ç–≤–µ—Ç–æ–≤ –≤—Å–µ—Ö –ø–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª–µ–π –≤ —Ñ–æ—Ä–º–∞—Ç–µ csv
üíª /logs - –ª–æ–≥–∏ —Å–µ—Ä–≤–∏—Å–∞
üëé /ban - –±–∞–Ω –ø–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—è
üëç /unban - —Ä–∞–∑–±–∞–Ω –ø–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª—è
üí© /blacklist - —Å–ø–∏—Å–æ–∫ –∑–∞–±–ª–æ–∫–∏—Ä–æ–≤–∞–Ω–Ω—ã—Ö –ø–æ–ª—å–∑–æ–≤–∞—Ç–µ–ª–µ–π
`)
	}
	return b.String()
}
