billing and paymetn methods
This commit is contained in:
@@ -162,12 +162,13 @@ export interface TeamMember {
|
||||
|
||||
export interface PaymentMethod {
|
||||
id: string;
|
||||
type: 'stripe' | 'paypal' | 'bank_transfer' | 'local_wallet';
|
||||
type: 'stripe' | 'paypal' | 'bank_transfer' | 'local_wallet' | 'manual';
|
||||
display_name: string;
|
||||
name?: string;
|
||||
is_enabled: boolean;
|
||||
is_default?: boolean;
|
||||
instructions?: string;
|
||||
country_code?: string;
|
||||
bank_details?: {
|
||||
bank_name?: string;
|
||||
account_number?: string;
|
||||
@@ -297,6 +298,90 @@ export async function getAdminPayments(params?: { status?: string; account_id?:
|
||||
return fetchAPI(url);
|
||||
}
|
||||
|
||||
// Admin payment method configs (country-level)
|
||||
export interface PaymentMethodConfig {
|
||||
id: number;
|
||||
country_code: string;
|
||||
payment_method: PaymentMethod['type'];
|
||||
display_name: string;
|
||||
is_enabled: boolean;
|
||||
instructions?: string;
|
||||
sort_order?: number;
|
||||
}
|
||||
|
||||
export async function getAdminPaymentMethodConfigs(params?: { country_code?: string; payment_method?: string }): Promise<{
|
||||
results: PaymentMethodConfig[];
|
||||
count: number;
|
||||
}> {
|
||||
const queryParams = new URLSearchParams();
|
||||
if (params?.country_code) queryParams.append('country_code', params.country_code);
|
||||
if (params?.payment_method) queryParams.append('payment_method', params.payment_method);
|
||||
const url = `/v1/admin/billing/payment-method-configs/${queryParams.toString() ? '?' + queryParams.toString() : ''}`;
|
||||
return fetchAPI(url);
|
||||
}
|
||||
|
||||
export async function createAdminPaymentMethodConfig(data: Partial<PaymentMethodConfig>): Promise<PaymentMethodConfig> {
|
||||
return fetchAPI('/v1/admin/billing/payment-method-configs/', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
}
|
||||
|
||||
export async function updateAdminPaymentMethodConfig(id: number, data: Partial<PaymentMethodConfig>): Promise<PaymentMethodConfig> {
|
||||
return fetchAPI(`/v1/admin/billing/payment-method-configs/${id}/`, {
|
||||
method: 'PATCH',
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
}
|
||||
|
||||
export async function deleteAdminPaymentMethodConfig(id: number): Promise<void> {
|
||||
await fetchAPI(`/v1/admin/billing/payment-method-configs/${id}/`, {
|
||||
method: 'DELETE',
|
||||
});
|
||||
}
|
||||
|
||||
// Admin account payment methods (cross-account)
|
||||
export interface AdminAccountPaymentMethod extends PaymentMethod {
|
||||
account: number;
|
||||
metadata?: Record<string, any>;
|
||||
}
|
||||
|
||||
export async function getAdminAccountPaymentMethods(params?: { account_id?: number }): Promise<{
|
||||
results: AdminAccountPaymentMethod[];
|
||||
count: number;
|
||||
}> {
|
||||
const queryParams = new URLSearchParams();
|
||||
if (params?.account_id) queryParams.append('account_id', String(params.account_id));
|
||||
const url = `/v1/admin/billing/account-payment-methods/${queryParams.toString() ? '?' + queryParams.toString() : ''}`;
|
||||
return fetchAPI(url);
|
||||
}
|
||||
|
||||
export async function createAdminAccountPaymentMethod(data: Partial<AdminAccountPaymentMethod>): Promise<AdminAccountPaymentMethod> {
|
||||
return fetchAPI('/v1/admin/billing/account-payment-methods/', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
}
|
||||
|
||||
export async function updateAdminAccountPaymentMethod(id: number | string, data: Partial<AdminAccountPaymentMethod>): Promise<AdminAccountPaymentMethod> {
|
||||
return fetchAPI(`/v1/admin/billing/account-payment-methods/${id}/`, {
|
||||
method: 'PATCH',
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
}
|
||||
|
||||
export async function deleteAdminAccountPaymentMethod(id: number | string): Promise<void> {
|
||||
await fetchAPI(`/v1/admin/billing/account-payment-methods/${id}/`, {
|
||||
method: 'DELETE',
|
||||
});
|
||||
}
|
||||
|
||||
export async function setAdminDefaultAccountPaymentMethod(id: number | string): Promise<{ message: string; id: number | string }> {
|
||||
return fetchAPI(`/v1/admin/billing/account-payment-methods/${id}/set_default/`, {
|
||||
method: 'POST',
|
||||
});
|
||||
}
|
||||
|
||||
export async function getAdminUsers(params?: {
|
||||
search?: string;
|
||||
role?: string;
|
||||
|
||||
Reference in New Issue
Block a user