package main

import (
	"encoding/json"
	"fmt"
	"os"
)

type Config struct {
	JiraBaseURL     string   `json:"jira_base_url"`
	JiraEmail       string   `json:"jira_email"`
	JiraToken       string   `json:"jira_token"`
	JiraProjects    []string `json:"jira_projects"`
	LookbackMinutes int      `json:"lookback_minutes"`
	LarkWebhook     string   `json:"lark_webhook"`
	GeminiAPIKey    string   `json:"gemini_api_key"`
	GeminiModel     string   `json:"gemini_model"`
	StateFile       string   `json:"state_file"`
}

func LoadConfig(path string) (*Config, error) {
	b, err := os.ReadFile(path)
	if err != nil {
		return nil, fmt.Errorf("read config: %w", err)
	}
	var c Config
	if err := json.Unmarshal(b, &c); err != nil {
		return nil, fmt.Errorf("parse config: %w", err)
	}
	if c.LookbackMinutes <= 0 {
		c.LookbackMinutes = 60
	}
	if c.GeminiModel == "" {
		c.GeminiModel = "gemini-2.5-pro"
	}
	if c.StateFile == "" {
		c.StateFile = "/tmp/ticket-notify-state.json"
	}
	return &c, nil
}
