package benefactorkindboxreqservice

import (
	"context"

	entity "git.gocasts.ir/ebhomengo/niki/entity"
	params "git.gocasts.ir/ebhomengo/niki/param"
	validator "git.gocasts.ir/ebhomengo/niki/validator/benefactor/kind_box_req"
)

type Repository interface {
	AddKindBoxReq(ctx context.Context, kindBoxReq entity.KindBoxReq) (entity.KindBoxReq, error)
	GetKindBoxReqByID(ctx context.Context, kindBoxReqID uint) (entity.KindBoxReq, error)
	DeleteKindBoxReqByID(ctx context.Context, kindBoxReqID uint) error
	GetAllKindBoxReq(ctx context.Context, filter params.FilterRequest, pagination params.PaginationRequest, sort params.SortRequest, searchParams *params.QuerySearch) ([]entity.KindBoxReq, uint, error)
	UpdateKindBoxReq(ctx context.Context, kindBoxReq entity.KindBoxReq) error
}

type Service struct {
	repo Repository
	vld  validator.Validator
}

func New(repository Repository, vld validator.Validator) Service {
	return Service{
		repo: repository,
		vld:  vld,
	}
}
