39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { apiRequest } from '@/api/http'
|
|
import type { TokenPair } from '@/api/session'
|
|
|
|
export interface RegisterMerchantRequest {
|
|
username: string
|
|
password: string
|
|
displayName: string
|
|
companyName: string
|
|
legalPerson: string
|
|
legalPhone: string
|
|
contactEmail?: string
|
|
countryCode?: string
|
|
address?: string
|
|
}
|
|
|
|
export interface RegisterMerchantResult {
|
|
accountId: number | string
|
|
tenantId: number | string
|
|
membershipId: number | string
|
|
tenantStatus: 'PROFILE_REQUIRED'
|
|
nextStep: string
|
|
}
|
|
|
|
export function loginMerchant(username: string, password: string) {
|
|
return apiRequest<TokenPair>({ method: 'POST', url: '/auth/login', data: { username, password } })
|
|
}
|
|
|
|
export function registerMerchant(payload: RegisterMerchantRequest) {
|
|
return apiRequest<RegisterMerchantResult>({ method: 'POST', url: '/auth/register', data: payload })
|
|
}
|
|
|
|
export function logoutMerchant(refreshToken: string) {
|
|
return apiRequest<void>({ method: 'POST', url: '/auth/logout', data: { refreshToken } })
|
|
}
|
|
|
|
export function changeCurrentPassword(oldPassword: string, newPassword: string) {
|
|
return apiRequest<void>({ method: 'PUT', url: '/auth/password', data: { oldPassword, newPassword } })
|
|
}
|