package models

import (
	"context"
	"daemonService/internal/notifications"
	"database/sql"
	"net/http"
	"time"
)

// Interfaz base que todos implementan
type SoapService interface {
	Execute(ctx context.Context, req *http.Request, isCron bool) (interface{}, error)
	GetName() string
}

// configuración y dependencias para cada servicio
type ServiceModel struct {
	Name               string
	Enabled            bool
	Concurrency        int
	DB                 *sql.DB
	SOAPEndpoint       string
	SOAPTimeout        time.Duration
	SOAPRetries        int
	NotificationSender notifications.NotificationSender
	//APIKey             string
	KeyToken          string
	ValueToken        string
	TagNames          string
	QueryInsert       string
	MsgCustomResponse string
}
