package message

import (
	"errors"

	regionalapiv1 "github.com/tidbcloud/cluster-service-ng/api/tidbcloud/dataplane-manager/v1"
)

type CreateLoadBalancerReqValidatable struct {
	*regionalapiv1.CreateLoadBalancerRequest
}

func (c *CreateLoadBalancerReqValidatable) Validate() error {
	if c == nil {
		return errors.New("request is nil")
	}
	if c.Loadbalancer == nil {
		return errors.New("LoadBalancer is nil")
	}
	if c.Loadbalancer.Identity == "" {
		return errors.New("identity is empty")
	}
	if c.DataPlaneId == "" {
		return errors.New("dataPlaneId is empty")
	}
	return nil
}

type GetLoadBalancerReqValidatable struct {
	*regionalapiv1.GetLoadBalancerRequest
}

func (r *GetLoadBalancerReqValidatable) Validate() error {
	if r == nil {
		return errors.New("request is nil")
	}
	if r.DataPlaneId == "" {
		return errors.New("dataPlaneId is empty")
	}
	return nil
}

type DeleteLoadBalancerReqValidatable struct {
	*regionalapiv1.DeleteLoadBalancerRequest
}

func (r *DeleteLoadBalancerReqValidatable) Validate() error {
	if r == nil {
		return errors.New("request is nil")
	}
	if r.DataPlaneId == "" {
		return errors.New("dataPlaneId is empty")
	}
	return nil
}
