Expose GET /api/v1/admin/payments for filtered gateway transaction listing, constrain /admin/:id to integers so /admin/payments is not mistaken for an admin id, and grant payments.list_all to ADMIN. Co-authored-by: Cursor <cursoragent@cursor.com>
25 lines
1.4 KiB
Go
25 lines
1.4 KiB
Go
package ports
|
|
|
|
import (
|
|
"Yimaru-Backend/internal/domain"
|
|
"context"
|
|
)
|
|
|
|
type PaymentStore interface {
|
|
CreatePayment(ctx context.Context, input domain.CreatePaymentInput) (*domain.Payment, error)
|
|
GetPaymentByID(ctx context.Context, id int64) (*domain.Payment, error)
|
|
GetPaymentBySessionID(ctx context.Context, sessionID string) (*domain.Payment, error)
|
|
GetPaymentByNonce(ctx context.Context, nonce string) (*domain.Payment, error)
|
|
GetPaymentByTransactionID(ctx context.Context, transactionID string) (*domain.Payment, error)
|
|
GetPaymentsByUserID(ctx context.Context, userID int64, limit, offset int32) ([]domain.Payment, error)
|
|
GetPendingPaymentsByUserID(ctx context.Context, userID int64) ([]domain.Payment, error)
|
|
UpdatePaymentStatus(ctx context.Context, id int64, status string) error
|
|
UpdatePaymentStatusBySessionID(ctx context.Context, sessionID, status, transactionID, paymentMethod string) error
|
|
UpdatePaymentStatusByNonce(ctx context.Context, nonce, status, transactionID, paymentMethod string) error
|
|
UpdatePaymentSessionID(ctx context.Context, id int64, sessionID, paymentURL string) error
|
|
LinkPaymentToSubscription(ctx context.Context, paymentID, subscriptionID int64) error
|
|
GetExpiredPendingPayments(ctx context.Context) ([]domain.Payment, error)
|
|
ExpirePayment(ctx context.Context, id int64) error
|
|
ListPaymentsAdmin(ctx context.Context, filter domain.PaymentListFilter) (domain.PaymentListPage, error)
|
|
}
|