import type { DepositIntentInput, PaymentProvider, WithdrawalInput } from "@/server/providers/payment/types";

export class LocalPaymentProvider implements PaymentProvider {
  key = "local";

  async createDepositIntent(input: DepositIntentInput) {
    return {
      provider: this.key,
      providerRef: `local-deposit-${input.idempotencyKey}`,
      redirectUrl: `${input.returnUrl}?localPayment=pending`,
      status: "PENDING" as const
    };
  }

  async requestWithdrawal(input: WithdrawalInput) {
    return {
      providerRef: `local-withdrawal-${input.idempotencyKey}`,
      status: "PENDING" as const
    };
  }

  async healthCheck() {
    return { ok: true, latencyMs: 1, message: "local payment provider ready for dev/staging" };
  }
}
