package errors

import (
	"strings"

	"gorm.io/gorm"
)

type ErrorList []error

func (el ErrorList) Error() string {
	ss := make([]string, 0, len(el))
	for _, err := range el {
		errStr := err.Error()
		ss = append(ss, errStr)
	}
	return strings.Join(ss, ";")
}

func IntoErrorList(err ...error) ErrorList {
	if len(err) == 0 {
		return nil
	}
	return ErrorList(err)
}

func CheckGORMErr(result *gorm.DB) error {
	err := result.Error
	if err == nil && result.RowsAffected == 0 {
		err = gorm.ErrRecordNotFound
	}
	return err
}
