package repository

import (
	"context"

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

type Repository interface {
	EnsureIndexes(ctx context.Context) error
	Create(ctx context.Context, event *entity.Event) error
	ListByQueue(ctx context.Context, tenantID, ownerUID, accountID, queueID string, limit int) ([]entity.Event, error)
	ListRecentByAccount(ctx context.Context, tenantID, ownerUID, accountID string, limit int) ([]entity.Event, error)
	DeleteByAccount(ctx context.Context, tenantID, ownerUID, accountID string) error
}
