package store

import (
	"context"

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

type WikiStore interface {
	GetWikiSpace(_ context.Context) (wikiSpaces []v1.WikiSpace, err error)
	GetWikiSpaceBySpaceID(_ context.Context, spaceID string) (wikiSpace v1.WikiSpace, err error)
	SaveDelWikiSpaces(_ context.Context, updateWikiSpaces, delWikiSpaces []v1.WikiSpace) error
	GetWikiDocsByLevel(_ context.Context, level int) (wikiDoc []v1.WikiDoc, err error)
	GetWikiDocs(_ context.Context) (wikiDocs []v1.WikiDoc, err error)
	GetWikiDocByDocID(_ context.Context, docID string) (wikiDoc v1.WikiDoc, err error)
	SaveDelWikiDocs(_ context.Context, updateWikiDocs, delWikiDocs []v1.WikiDoc) error
	SaveWikiDoc(_ context.Context, wikiDoc v1.WikiDoc) error
	UpdateWikiDocs(_ context.Context, wikiDocs []v1.WikiDoc) error
	GetWikiRegularByOrder(_ context.Context) (wikiRegular []v1.WikiRegular, err error)
	GetWikiDocsWithReason(_ context.Context, reason int) (wikiDocs []v1.WikiDoc, err error)
	GetWikiDocsWithConfirm(_ context.Context) (wikiDocs []v1.WikiDoc, err error)
	SaveWikiApproval(_ context.Context, wikiApproval v1.WikiApproval) error
	GetWikiApprovals(_ context.Context) (wikiApprovals []v1.WikiApproval, err error)
	GetWikiDocWithoutContent(_ context.Context) (wikiDocs []v1.WikiDoc, err error)
	GetWikiApprovalByStatus(_ context.Context, status int) (wikiApproval []v1.WikiApproval, err error)
	GetWikiPermissions(_ context.Context) (wikiPermission []v1.WikiPermission, err error)
}
