import { apiRequest, revokeCapturedSession } from '@/api/http' import type { TokenPair } from '@/api/session' export interface RegisterMerchantRequest { username: string password: string displayName: string companyName: string legalPerson?: string phone: 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 interface ImpersonationExchangeResult { tokenType: string accessToken: string expiresIn: number } export function loginMerchant(loginId: string, password: string) { return apiRequest({ method: 'POST', url: '/auth/login', data: { loginId, password } }) } export function registerMerchant(payload: RegisterMerchantRequest) { return apiRequest({ method: 'POST', url: '/auth/register', data: payload }) } export function logoutMerchant(accessToken: string, refreshToken: string) { return revokeCapturedSession(accessToken, refreshToken) } export function changeCurrentPassword(oldPassword: string, newPassword: string) { return apiRequest({ method: 'PUT', url: '/auth/password', data: { oldPassword, newPassword } }) } export function exchangeImpersonationCode(code: string) { return apiRequest({ method: 'POST', url: '/auth/impersonations/exchange', data: { code } }) }