You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: provider.go
    path of file: ./repos/evcc/vehicle/seat/cupra
    
    the code of the file until where you have to start completion: package cupra

import (
	"strings"
	"time"

	"github.com/evcc-io/evcc/api"
	"github.com/evcc-io/evcc/provider"
)

// Provider is an api.Vehicle implementation for Seat Cupra cars
type Provider struct {
	statusG func() (Status, error)
	action  func(string, string) error
}

// NewPr
    
func NewProvider(api *API, userID, vin string, cache time.Duration) *Provider {
	impl := &Provider{
		statusG: provider.Cached(func() (Status, error) {
			return api.Status(userID, vin)
		}, cache),
		action: func(action, cmd string) error {
			return api.Action(vin, action, cmd)
		},
	}
	return impl
}