package repository import ( "context" "time" ) // IdempotencyCache stores a serialized notification result for deduplication. type IdempotencyCache interface { Get(ctx context.Context, key string) ([]byte, error) Set(ctx context.Context, key string, value []byte, ttl time.Duration) error } // QuotaCounter tracks per-tenant daily send counts. type QuotaCounter interface { // Incr returns the count after increment (1-based on first incr of the day). Incr(ctx context.Context, key string, ttl time.Duration) (int64, error) }