/**
 * 机构网点管理 API
 */
import { request } from './request'
import type { Organization } from '@/types'

/** 创建机构参数 */
export interface OrganizationCreateParams {
  orgCode: string
  orgName: string
  orgType: Organization['orgType']
  parentId?: number
  address?: string
  contactPerson?: string
  contactPhone?: string
}

/** 更新机构参数 */
export type OrganizationUpdateParams = Partial<Omit<OrganizationCreateParams, 'orgCode'>>

/**
 * 获取机构树
 */
export const getOrganizationTree = () => {
  return request.get<Organization[]>('/organizations/tree')
}

/**
 * 获取机构详情
 */
export const getOrganizationById = (id: number) => {
  return request.get<Organization>(`/organizations/${id}`)
}

/**
 * 创建机构
 */
export const createOrganization = (data: OrganizationCreateParams) => {
  return request.post<Organization>('/organizations', data)
}

/**
 * 更新机构
 */
export const updateOrganization = (id: number, data: OrganizationUpdateParams) => {
  return request.put(`/organizations/${id}`, data)
}

/**
 * 删除机构
 */
export const deleteOrganization = (id: number) => {
  return request.delete(`/organizations/${id}`)
}

/**
 * 移动机构（调整层级）
 */
export const moveOrganization = (id: number, targetParentId: number | null) => {
  return request.put(`/organizations/${id}/move`, { target_parent_id: targetParentId })
}
