package main

import (
	"os"

	"github.com/callebtc/electronwall/api"
	"github.com/callebtc/electronwall/rules"
	"github.com/callebtc/electronwall/types"
	"github.com/lightningnetwork/lnd/lnrpc"
	log "github.com/sirupsen/logrus"
)

func main() {
	if len(os.Args) < 2 {
		log.Errorf("Pass node ID as argument.")
		return
	}
	pubkey := os.Args[1]
	log.Infof("pubkey: %s", pubkey)
	pk_byte := []byte(pubkey)
	decision_chan := make(chan bool, 1)
	event := types.ChannelAcceptEvent{}

	event.Event = &lnrpc.ChannelAcceptRequest{}

	event.Event.FundingAmt = 1_000_000
	log.Infof("Funding amount: %d sat", event.Event.FundingAmt)
	event.Event.NodePubkey = pk_byte

	req := lnrpc.ChannelAcceptRequest{}
	req.NodePubkey = pk_byte

	nodeInfo, err := api.GetApiNodeinfo(string(req.NodePubkey))
	if err != nil {
		log.Errorf(err.Error())
	}
	// log.Infoln("1ML")
	// // log.Infoln("%+v", noeInfo.OneMl)
	// log.Printf("%+v\n", nodeInfo.OneMl)
	// log.Infoln("Amboss")
	// log.Printf("%+v\n", nodeInfo.Amboss)

	event.OneMl = nodeInfo.OneMl
	event.Amboss = nodeInfo.Amboss

	rules_decision, err := rules.Apply(event, decision_chan)
	if err != nil {
		panic(err)
	}
	log.Infof("Decision: %t", rules_decision)
}
