package utils

import (
	"context"

	"go.uber.org/zap"
)

type Context interface {
	context.Context
	Log() *zap.SugaredLogger
}

type contextImpl struct {
	context.Context
	logger *zap.SugaredLogger
}

func NewContext(ctx context.Context, logger *zap.SugaredLogger) Context {
	return &contextImpl{
		Context: ctx,
		logger:  logger,
	}
}

func (c *contextImpl) Log() *zap.SugaredLogger {
	return c.logger
}
