package store

import (
	"context"

	v1 "github.com/pingcap-inc/pchub/model/v1"
)

type UserStore interface {
	Create(ctx context.Context, user *v1.User) (*v1.User, error)
	Update(ctx context.Context, user *v1.User) error
	GetByAnyID(ctx context.Context, anyID string) (*v1.User, error)
	GetByEmail(ctx context.Context, email string) (*v1.User, error)
	BatchInit(ctx context.Context, users []*v1.User) error
	MGetByLarkIDs(ctx context.Context, larkIDs []string) ([]*v1.User, error)
	BatchSave(_ context.Context, news, updates []*v1.User) error
	MDelByLarkIDsIfNotIn(_ context.Context, larkIDs []string) error
	Search(ctx context.Context, kw string) ([]*v1.User, error)
	Gets(_ context.Context) ([]*v1.User, error)
}
