package repository

import (
	"context"

	"haixun-backend/internal/model/mention_inbox/domain/entity"
)

type ListResult struct {
	Items          []entity.Mention
	Total          int64
	ReadyTotal     int64
	NewestSyncedAt int64
}

type Repository interface {
	EnsureIndexes(ctx context.Context) error
	Upsert(ctx context.Context, item *entity.Mention) (*entity.Mention, error)
	Get(ctx context.Context, tenantID, ownerUID, accountID, mediaID string) (*entity.Mention, error)
	CountByAccount(ctx context.Context, tenantID, ownerUID, accountID string) (int64, error)
	CountReplyReadyByAccount(ctx context.Context, tenantID, ownerUID, accountID string) (int64, error)
	ListByAccount(ctx context.Context, tenantID, ownerUID, accountID string, page, pageSize int) (*ListResult, error)
}
