package adminkindboxservice

import (
	"context"

	"git.gocasts.ir/ebhomengo/niki/entity"
	params "git.gocasts.ir/ebhomengo/niki/param"
	validator "git.gocasts.ir/ebhomengo/niki/validator/admin/kind_box"
)

type Repository interface {
	AddBatchKindBox(ctx context.Context, kindBoxes []entity.KindBox) error
	AddKindBox(ctx context.Context, kindBox entity.KindBox) error
	GetKindBox(ctx context.Context, kindBoxID uint) (entity.KindBox, error)
	AssignReceiverAgent(ctx context.Context, kindBox entity.KindBox) error
	GetAllKindBox(ctx context.Context, filter params.FilterRequest, pagination params.PaginationRequest, sort params.SortRequest) ([]entity.KindBox, uint, error)
	EnumerateKindBox(ctx context.Context, kindBoxID uint, amount uint) error
}

type Service struct {
	repo Repository
	vld  validator.Validator
}

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