flowchart TD
Start("Run generate-cover.sh"):::startNode
CheckAPI{"HAS_OPENAI_API_KEY?"}:::decisionNode
CheckBilling{"API Billing Active?"}:::decisionNode
FullAuto["Use Full Auto Mode"]:::autoNode
GenerateAPI["Generate via API"]:::processNode
SaveAuto["Save to docs/img/cover.png"]:::processNode
DoneAuto("Done - Image Generated!"):::successNode
CheckChatGPT{"HAS_CHATGPT_PRO?"}:::decisionNode
LocalPrompt["Use --local-prompt"]:::processNode
GeneratePrompt["Generate Prompt Locally"]:::processNode
DisplayPrompt["Display Image Prompt"]:::processNode
CheckMacOS{"ON_MACOS?"}:::decisionNode
OpenBrowser["Use --open-browser"]:::macNode
AutoPaste["Auto-open ChatGPT & Paste"]:::macNode
ManualCopy["Copy Prompt Manually"]:::processNode
PasteChatGPT["Paste in ChatGPT"]:::processNode
DownloadImg["Download Generated Image"]:::processNode
SaveManual["Save to docs/img/cover.png"]:::processNode
DoneManual("Done - Image Saved!"):::successNode
NoOption("Cannot Generate Cover"):::errorNode
SetupAPI["Setup OpenAI API Billing"]:::processNode
Start --> CheckAPI
CheckAPI -->|Yes| CheckBilling
CheckAPI -->|No| CheckChatGPT
CheckBilling -->|Yes| FullAuto
CheckBilling -->|No| CheckChatGPT
FullAuto --> GenerateAPI --> SaveAuto --> DoneAuto
CheckChatGPT -->|Yes| LocalPrompt
CheckChatGPT -->|No| NoOption
NoOption --> SetupAPI
SetupAPI --> CheckAPI
LocalPrompt --> GeneratePrompt --> DisplayPrompt --> CheckMacOS
CheckMacOS -->|Yes| OpenBrowser
CheckMacOS -->|No| ManualCopy
OpenBrowser --> AutoPaste --> DownloadImg
ManualCopy --> PasteChatGPT --> DownloadImg
DownloadImg --> SaveManual --> DoneManual
classDef startNode fill:#667eea,stroke:#333,stroke-width:2px,color:#fff,font-size:16px
classDef processNode fill:#764ba2,stroke:#333,stroke-width:2px,color:#fff,font-size:16px
classDef decisionNode fill:#f093fb,stroke:#333,stroke-width:2px,color:#333,font-size:16px
classDef successNode fill:#4facfe,stroke:#333,stroke-width:2px,color:#fff,font-size:16px
classDef errorNode fill:#ff6b6b,stroke:#333,stroke-width:2px,color:#fff,font-size:16px
classDef autoNode fill:#00b894,stroke:#333,stroke-width:2px,color:#fff,font-size:16px
classDef macNode fill:#0984e3,stroke:#333,stroke-width:2px,color:#fff,font-size:16px
linkStyle default stroke:#999,stroke-width:2px,font-size:16px