package domain

type InitPluginRequest struct {
	Name      string `json:"name"`
	Version   int    `json:"version"`
	Namespace string `json:"namespace"`
}

type PluginPage struct {
	Name      string `json:"name"`
	Version   int    `json:"version"`
	Namespace string `json:"namespace"`
	Path      string `json:"path"`
}

type PluginAction struct {
	Name                  string   `json:"name"`
	Version               int      `json:"version"`
	Namespace             string   `json:"namespace"`
	RequiredResolveParams []string `json:"required_resolve_params"`
	OptionalResolveParams []string `json:"optional_resolve_params"`
	WithActions           bool     `json:"with_actions"`
	Async                 bool     `json:"async"`
}

type PluginComponent struct {
	Name                  string   `json:"name"`
	Version               int      `json:"version"`
	Namespace             string   `json:"namespace"`
	RequiredResolveParams []string `json:"required_resolve_params"`
	OptionalResolveParams []string `json:"optional_resolve_params"`
	WithActions           bool     `json:"with_actions"`
	Async                 bool     `json:"async"`
}

type Ping struct {
	Payload any `json:"payload"`
}

type Pong struct {
	Payload any `json:"payload"`
}
