package store

import (
	"context"

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

type ResourceMemberAccessStore interface {
	Create(ctx context.Context, cloudResource *v1.ResourceMemberAccess) (*v1.ResourceMemberAccess, error)
	Update(ctx context.Context, cloudResource *v1.ResourceMemberAccess) error
	Delete(ctx context.Context, member *v1.ResourceMemberAccess) error
	Get(ctx context.Context, member *v1.ResourceMemberAccess) (v1.ResourceMemberAccess, error)
	ListByResourceID(ctx context.Context, rid uint64) ([]*v1.ResourceMemberAccess, error)
	ListByResourceIDs(ctx context.Context, rid []uint64) ([]*v1.ResourceMemberAccess, error)
	ListByLarkID(ctx context.Context, luid string) ([]*v1.ResourceMemberAccess, error)
	DeleteByIDs(ctx context.Context, ids []uint64) error
	SyncToDB(ctx context.Context, add, del []v1.ResourceMemberAccess) error
	ListByRIDs(ctx context.Context, IDs []uint64) ([]v1.ResourceMemberAccess, error)
}
