# {{TOOL_NAME}} Configuration
#
# This is the configuration file for {{TOOL_NAME}}.
#
# Configuration file search order (tool uses first found):
#   1. .project/{{tool_name_kebab}}.toml  - Tools ecosystem (priority)
#   2. .vapora/{{tool_name_kebab}}.toml         - VAPORA projects
#   3. .coder/{{tool_name_kebab}}.toml          - Doc tracking projects
#   4. ./{{tool_name_kebab}}.toml               - Current directory
#
# Copy this file to one of the locations above and customize as needed.

################################################################################
# MAIN SETTINGS
################################################################################

[{{tool_name_kebab}}]

# Setting 1: Description of what this setting does
# Type: string
# Default: "value1"
# Required: yes
setting1 = "value1"

# Setting 2: Another setting description
# Type: integer
# Default: 42
# Valid Range: 1-1000
# Required: no
setting2 = 42

# Enable Feature: Enable or disable feature
# Type: boolean
# Default: true
# Required: no
enable_feature = true

################################################################################
# ADVANCED SETTINGS
################################################################################

[{{tool_name_kebab}}.advanced]

# Maximum Items: Maximum number of items to process
# Type: integer
# Default: 1000
# Valid Range: 1-10000
# Recommendation: Increase for large datasets, decrease for limited memory
max_items = 1000

# Timeout Seconds: Operation timeout in seconds
# Type: integer
# Default: 30
# Valid Range: 1-300
# Recommendation: Increase for slow networks or large operations
timeout_seconds = 30

# Cache Enabled: Enable caching for better performance
# Type: boolean
# Default: true
# Recommendation: true for production, false for testing
cache_enabled = true

# Cache TTL: Cache time-to-live in seconds
# Type: integer
# Default: 3600 (1 hour)
# Valid Range: 60-86400
cache_ttl_seconds = 3600

################################################################################
# DATABASE CONFIGURATION
################################################################################

[database]

# Type: Which database backend to use
# Type: string
# Valid Values: "sqlite" (recommended), "postgres"
# Default: "sqlite"
# Recommendation: Use sqlite for single-user, postgres for production
type = "sqlite"

# SQLite Configuration (used when type = "sqlite")
#
# Path: Location of the SQLite database file
# Type: string
# Default: ".project/{{tool_name_kebab}}.db"
# Recommendation: Keep in .project/ for Tools ecosystem
# Note: Directory must exist and be writable
path = ".project/{{tool_name_kebab}}.db"

# PostgreSQL Configuration (used when type = "postgres")
#
# URL: PostgreSQL connection string
# Type: string
# Format: postgresql://[user[:password]@][host][:port][/database]
# Examples:
#   postgresql://localhost/{{tool_name_kebab}}
#   postgresql://user:pass@localhost:5432/{{tool_name_kebab}}
#   postgresql://user:pass@prod.example.com/{{tool_name_kebab}}
# Note: Uncomment and configure only if using PostgreSQL
# url = "postgresql://user:password@localhost:5432/{{tool_name_kebab}}"

# Connection Pool Size (PostgreSQL only)
# Type: integer
# Default: 5
# Valid Range: 1-20
# Recommendation: Higher for concurrent workloads
# pool_size = 5

################################################################################
# LOGGING CONFIGURATION
################################################################################

[logging]

# Level: Logging verbosity level
# Type: string
# Valid Values: "trace", "debug", "info", "warn", "error"
# Default: "info"
# Recommendation: Use "debug" for development, "info" for production
level = "info"

# Format: Log message format
# Type: string
# Valid Values: "text", "json", "compact"
# Default: "text"
# Recommendation: "text" for terminal, "json" for systems (e.g., ELK stack)
format = "text"

# Output File: Optional log file path (in addition to console)
# Type: string
# Default: (no file logging)
# Example: "/var/log/{{tool_name_kebab}}/app.log"
# Uncomment to enable file logging:
# output_file = ".project/{{tool_name_kebab}}.log"

################################################################################
# ENVIRONMENT VARIABLE OVERRIDES
################################################################################

# You can also configure via environment variables.
# Environment variables take priority over this file.
#
# Format: {{TOOL_NAME}}_SECTION_SETTING=value
#
# Examples:
#   export {{TOOL_NAME}}_SETTING1="override"
#   export {{TOOL_NAME}}_SETTING2=100
#   export {{TOOL_NAME}}_ADVANCED_MAX_ITEMS=5000
#   export {{TOOL_NAME}}_DATABASE_TYPE=postgres
#   export {{TOOL_NAME}}_DATABASE_URL=postgresql://localhost/{{tool_name_kebab}}
#   export {{TOOL_NAME}}_LOGGING_LEVEL=debug
#
# Then run: {{tool_name_kebab}} list
# The tool will use the environment variable values instead of this file.

################################################################################
# COMMON CONFIGURATIONS
################################################################################

# DEVELOPMENT CONFIGURATION
# Uncomment the following lines to use development defaults:
# [{{tool_name_kebab}}]
# enable_feature = false
#
# [{{tool_name_kebab}}.advanced]
# cache_enabled = false
# timeout_seconds = 60
#
# [logging]
# level = "debug"

# PRODUCTION CONFIGURATION
# Uncomment the following lines to use production defaults:
# [{{tool_name_kebab}}]
# enable_feature = true
#
# [{{tool_name_kebab}}.advanced]
# max_items = 10000
# cache_enabled = true
# cache_ttl_seconds = 7200
#
# [database]
# type = "postgres"
# url = "postgresql://user:password@prod-db:5432/{{tool_name_kebab}}"
# pool_size = 20
#
# [logging]
# level = "warn"
# format = "json"
# output_file = "/var/log/{{tool_name_kebab}}/app.log"

################################################################################
# HELPFUL HINTS
################################################################################

# 1. This file uses TOML format (Tom's Obvious, Minimal Language)
#    - Strings need double quotes: "value"
#    - Numbers don't: 42
#    - Booleans: true or false
#    - Sections use [name] format
#
# 2. Configuration file search order:
#    Tool automatically searches in this order and uses the first found:
#    a) .project/{{tool_name_kebab}}.toml
#    b) .vapora/{{tool_name_kebab}}.toml
#    c) .coder/{{tool_name_kebab}}.toml
#    d) ./{{tool_name_kebab}}.toml
#
# 3. To debug configuration:
#    Run: {{tool_name_kebab}} -v list
#    This shows which config file is being used
#
# 4. For sensitive data (passwords):
#    Use environment variables instead of storing in this file:
#    export {{TOOL_NAME}}_DATABASE_URL="postgresql://..."
#    {{tool_name_kebab}} list
#
# 5. Directory must exist:
#    If using SQLite with path = ".project/{{tool_name_kebab}}.db"
#    Ensure .project/ directory exists:
#    mkdir -p .project
#
# 6. File permissions:
#    Ensure config file is readable:
#    chmod 644 .project/{{tool_name_kebab}}.toml
#
# 7. Validate configuration:
#    Run: {{tool_name_kebab}} validate-config
#    This checks syntax and required fields without running commands
#
# 8. For more information:
#    - See docs/configuration.md for complete guide
#    - See README.md for all features
#    - See QUICKSTART.md for 5-minute setup

