package invoice

import (
	"io"
	"log/slog"

	"code.gitea.io/sdk/gitea"
)

type Repo struct {
	Owner string `json:"owner"`
	Repo  string `json:"repo"`
}

type Service struct {
	log   *slog.Logger
	gitea giteaClient
	pdf   pdfGenerator
}

func New(log *slog.Logger, gitea giteaClient, pdf pdfGenerator) *Service {
	return &Service{
		log:   log,
		gitea: gitea,
		pdf:   pdf,
	}
}

type giteaClient interface {
	ListRepoIssues(owner, repo string, opt gitea.ListIssueOption) ([]*gitea.Issue, *gitea.Response, error)
}
type pdfGenerator interface {
	HtmlToPdf(html string) (pdf io.ReadCloser, err error)
}
