package store

import (
	"context"

	"data-platform/model"
)

type SalesforceStore interface {
	ListPsRejectBySync(_ context.Context) (records []*model.PsManDaysReject, err error)
	UpdateRejectSync(_ context.Context, psdRej model.PsManDaysReject, sync int) (err error)

	ListInvoicesNotSync(ctx context.Context) (records []*model.InvoiceRewrite, err error)
	UpdateInvoice(_ context.Context, invoice model.InvoiceRewrite) (err error)

	ListCreateMc(ctx context.Context) (records []*model.MarketplaceCollection, err error)
	ListUpdateMc(ctx context.Context) (records []*model.MarketplaceCollection, err error)
	CreatedMcStatus(_ context.Context, invoice model.MarketplaceCollectionStatus) (err error)
	GetMcStatusByMkID(_ context.Context, mkID string) (record *model.MarketplaceCollectionStatus, err error)
	SaveMcStatus(_ context.Context, record *model.MarketplaceCollectionStatus) (err error)

	CopyMc(ctx context.Context) (err error)

	ListPbcNotSync(ctx context.Context) (records []*model.PublicCollection, err error)
	UpdatePbc(_ context.Context, pbc model.PublicCollection) (err error)
	ListPbc(ctx context.Context) (records []*model.PublicCollection, err error)

	ListNSRevrecNotSync(_ context.Context) (records []*model.NSRevRec, err error)
	GetNSRevrecStatusByRowID(_ context.Context, rowID string) (record *model.NSRevRecStatus, err error)
	UpdateNSRevrecStatus(_ context.Context, nsRevrecStatus *model.NSRevRecStatus) (err error)

	ListOrg(_ context.Context) (records []*model.SalesforceOrg, err error)

	ListOrder(_ context.Context) (records []*model.SfOrder, err error)
}
