package storage import ( "context" "github.com/tech/sendico/payments/storage/model" "go.mongodb.org/mongo-driver/v2/bson" ) type storageError string func (e storageError) Error() string { return string(e) } var ( // ErrQuoteNotFound signals that a stored quote does not exist or expired. ErrQuoteNotFound = storageError("payments.storage.quote: quote not found") // ErrDuplicateQuote signals that a quote reference already exists. ErrDuplicateQuote = storageError("payments.storage.quote: duplicate quote") ) // Repository exposes persistence primitives for quote records. type Repository interface { Ping(ctx context.Context) error Quotes() QuotesStore } // QuotesStore manages temporary stored payment quotes. type QuotesStore interface { Create(ctx context.Context, quote *model.PaymentQuoteRecord) error GetByRef(ctx context.Context, orgRef bson.ObjectID, quoteRef string) (*model.PaymentQuoteRecord, error) GetByIdempotencyKey(ctx context.Context, orgRef bson.ObjectID, idempotencyKey string) (*model.PaymentQuoteRecord, error) }