package repository

import (
	"context"

	"gateway/internal/model/notification/domain/entity"
)

// NotificationDLQRepository persists dead-letter notification records.
type NotificationDLQRepository interface {
	Insert(ctx context.Context, data *entity.NotificationDLQ) error
	FindByID(ctx context.Context, tenantID, id string) (*entity.NotificationDLQ, error)
	ListByTenant(ctx context.Context, tenantID string, limit int64) ([]*entity.NotificationDLQ, error)
	NotificationDLQIndexUP
}

// NotificationDLQIndexUP migrates DLQ collection indexes.
type NotificationDLQIndexUP interface {
	Index20260520001UP(ctx context.Context) error
}
