Yimaru-BackEnd/internal/ports/payment.go
Yared Yemane fbad083ca4 Add admin payments list API with filters and fix /admin route conflict.
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>
2026-05-29 05:50:46 -07:00

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)
}