package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	body := []byte(`{"serviceid":2,"name":"Customer Name","email":"customer@example.com"}`)
	req, err := http.NewRequest(http.MethodPost,
		"https://starbonding.com/api/v1/create.account.php", bytes.NewReader(body))
	if err != nil { panic(err) }
	req.Header.Set("X-API-Key", os.Getenv("STARBONDING_API_KEY"))
	req.Header.Set("Idempotency-Key", "create-customer-0001")
	req.Header.Set("Content-Type", "application/json")
	response, err := http.DefaultClient.Do(req)
	if err != nil { panic(err) }
	defer response.Body.Close()
	data, err := io.ReadAll(response.Body)
	if err != nil { panic(err) }
	var result struct { Success bool `json:"success"` }
	if err := json.Unmarshal(data, &result); err != nil { panic(err) }
	fmt.Printf("HTTP %d\n%s\n", response.StatusCode, data)
	if response.StatusCode < 200 || response.StatusCode >= 300 || !result.Success { os.Exit(1) }
}
