--- alwaysApply: true description: Go EVE PI project structure and conventions --- # Go EVE PI Project Structure This is a Go project for EVE Online PI (Planetary Interaction) management with SSO authentication. ## Key Files - [main.go](mdc:main.go) - Main entry point, loads configuration from .env file - [esi_sso.go](mdc:esi_sso.go) - EVE SSO authentication implementation - [db.go](mdc:db.go) - Database abstraction layer with high-level methods ## Project Conventions - Uses `logger "git.site.quack-lab.dev/dave/cylogger"` for all logging - Database operations use high-level methods like `GetTokenForCharacter()` and `SaveTokenForCharacter()` - SSO interface: `GetToken(ctx, characterName)` returns access token for character - Configuration loaded from .env file (ESI_CLIENT_ID, ESI_REDIRECT_URI, ESI_SCOPES, DB_PATH) ## Logging Standards - Use `logger.Info()` for important business events - Use `logger.Debug()` for detailed debugging information - Use `logger.Warning()` for warning conditions - Use `logger.Error()` for error conditions - Never use `fmt.Printf` - always use the logger - Avoid redundant log lines right next to each other