## General Guidelines for Code Generation - **Overall Style:** - Write clear, concise, and well-commented code. - Follow idiomatic coding practices that prioritize readability, maintainability, and simplicity. - Apply the DRY (Don't Repeat Yourself) principle to avoid duplication. ## Backend (Go) Specifics - **Routing & Handlers:** - Use go-chi for routing and maintain a modular structure. - Write handler functions that perform one clear task: parsing requests, interacting with PostgreSQL, and returning JSON responses. - Include inline comments to explain complex logic and error handling. - **Error Handling & Patterns:** - Check for errors at each step and use context-aware patterns. - Use proper naming conventions (camelCase for variables and PascalCase for types). - **Database & Caching:** - When interacting with PostgreSQL, use environment variables (e.g., `DATABASE_URL`) to read connection details and use parameterized queries to prevent SQL injection. - For Redis, initialize the client with context and perform error checking to ensure the connection is stable. ## Swagger Documentation - **API Documentation:** - Generate Swagger (OpenAPI) YAML snippets to document each endpoint, including parameters, expected responses, and error messages. - Ensure the Swagger docs are clear and adhere to standardized formats. ## Frontend (NuxtJS) Specifics - **Setup & Configuration:** - Assume a client-side only NuxtJS application. - Generate lightweight, reusable Vue components using the Composition API. - Use async/await syntax for API calls and refer to environment variables (e.g., API base URL) for configuration. ## Commit & PR Messaging - **Descriptive Messaging:** - When generating commit messages or pull request descriptions, include: - A short summary of the changes. - The reason for the changes. - Optionally, emojis to indicate the type of update (e.g., :sparkles: for features, :bug: for fixes). ## Additional Guidance & Context - **Suggestions & Improvements:** - When proposing code changes, suggest alternative approaches or improvements, particularly around error handling, security, and performance optimization. - Ask clarifying questions if the context is unclear to ensure alignment with project requirements.