package main

import (
	"context"

	"github.com/Eriyc/rules_wails/pkg/wails3kit/updates"
	updateswails "github.com/Eriyc/rules_wails/pkg/wails3kit/updates/wails"
	"github.com/wailsapp/wails/v3/pkg/application"
)

type UpdateService struct {
	service *updateswails.Service
}

func NewUpdateService(service *updateswails.Service) *UpdateService {
	return &UpdateService{service: service}
}

func (service *UpdateService) ServiceStartup(ctx context.Context, options application.ServiceOptions) error {
	return service.service.ServiceStartup(ctx, options)
}

func (service *UpdateService) ServiceShutdown() error {
	return service.service.ServiceShutdown()
}

func (service *UpdateService) Snapshot() updates.Snapshot {
	return service.service.Snapshot()
}

func (service *UpdateService) Check() (updates.Snapshot, error) {
	return service.service.Check()
}

func (service *UpdateService) Download() (updates.Snapshot, error) {
	return service.service.Download()
}

func (service *UpdateService) ApplyAndRestart() error {
	return service.service.ApplyAndRestart()
}
