Marketplace móvil para negocios locales mexicanos. Estructura inicial: - apps/backend (NestJS API) - apps/frontend (React Web) - apps/mobile (Expo/React Native) - apps/mcp-server (Claude MCP Server) - apps/whatsapp-service (WhatsApp Business API) - database/ (PostgreSQL DDL) - docs/ (Documentación) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
57 lines
2.0 KiB
TypeScript
57 lines
2.0 KiB
TypeScript
import { ConfigService } from '@nestjs/config';
|
|
import Stripe from 'stripe';
|
|
export declare class StripeService {
|
|
private configService;
|
|
private readonly logger;
|
|
private stripe;
|
|
constructor(configService: ConfigService);
|
|
private ensureStripe;
|
|
createCustomer(params: {
|
|
email?: string;
|
|
phone: string;
|
|
name: string;
|
|
tenantId: string;
|
|
}): Promise<Stripe.Customer>;
|
|
getCustomer(customerId: string): Promise<Stripe.Customer | null>;
|
|
createSubscription(params: {
|
|
customerId: string;
|
|
priceId: string;
|
|
trialDays?: number;
|
|
}): Promise<Stripe.Subscription>;
|
|
cancelSubscription(subscriptionId: string): Promise<Stripe.Subscription>;
|
|
getSubscription(subscriptionId: string): Promise<Stripe.Subscription | null>;
|
|
updateSubscription(subscriptionId: string, params: Stripe.SubscriptionUpdateParams): Promise<Stripe.Subscription>;
|
|
createPaymentIntent(params: {
|
|
amount: number;
|
|
customerId: string;
|
|
metadata?: Record<string, string>;
|
|
}): Promise<Stripe.PaymentIntent>;
|
|
createCheckoutSession(params: {
|
|
customerId: string;
|
|
priceId: string;
|
|
mode: 'subscription' | 'payment';
|
|
successUrl: string;
|
|
cancelUrl: string;
|
|
metadata?: Record<string, string>;
|
|
}): Promise<Stripe.Checkout.Session>;
|
|
createPortalSession(params: {
|
|
customerId: string;
|
|
returnUrl: string;
|
|
}): Promise<Stripe.BillingPortal.Session>;
|
|
constructWebhookEvent(payload: string | Buffer, signature: string, webhookSecret: string): Stripe.Event;
|
|
createProduct(params: {
|
|
name: string;
|
|
description?: string;
|
|
metadata?: Record<string, string>;
|
|
}): Promise<Stripe.Product>;
|
|
createPrice(params: {
|
|
productId: string;
|
|
unitAmount: number;
|
|
recurring?: {
|
|
interval: 'month' | 'year';
|
|
};
|
|
metadata?: Record<string, string>;
|
|
}): Promise<Stripe.Price>;
|
|
listInvoices(customerId: string, limit?: number): Promise<Stripe.Invoice[]>;
|
|
}
|