/**
 * 学校管理API
 * @author pangu
 */
import request from '@/utils/request'

// ==================== 学校管理 ====================

// 获取学校树形结构
export function getSchoolTree(regionId) {
  return request({
    url: '/api/school/tree',
    method: 'get',
    params: { regionId }
  })
}

// 获取学校列表（分页）
export function getSchoolList(params) {
  return request({
    url: '/api/school/list',
    method: 'get',
    params
  })
}

// 获取学校详情
export function getSchoolDetail(schoolId) {
  return request({
    url: `/api/school/${schoolId}`,
    method: 'get'
  })
}

// 新增学校
export function addSchool(data) {
  return request({
    url: '/api/school',
    method: 'post',
    data
  })
}

// 修改学校
export function updateSchool(data) {
  return request({
    url: '/api/school',
    method: 'put',
    data
  })
}

// 删除学校
export function deleteSchool(schoolId) {
  return request({
    url: `/api/school/${schoolId}`,
    method: 'delete'
  })
}

// ==================== 年级挂载 ====================

// 为学校挂载年级
export function bindGrades(data) {
  return request({
    url: '/api/school/bindGrades',
    method: 'post',
    data
  })
}

// 删除学校年级
export function deleteSchoolGrade(schoolGradeId) {
  return request({
    url: `/api/school/grade/${schoolGradeId}`,
    method: 'delete'
  })
}

// ==================== 班级挂载 ====================

// 为年级挂载班级
export function bindClasses(data) {
  return request({
    url: '/api/school/bindClasses',
    method: 'post',
    data
  })
}

// 删除学校班级
export function deleteSchoolClass(schoolClassId) {
  return request({
    url: `/api/school/class/${schoolClassId}`,
    method: 'delete'
  })
}

// ==================== 字典数据 ====================

// 获取年级列表（字典数据）
export function getGradeList() {
  return request({
    url: '/api/grade/list',
    method: 'get'
  })
}

// 获取班级列表（字典数据）
export function getClassList() {
  return request({
    url: '/api/class/list',
    method: 'get'
  })
}

// 根据区域获取学校列表
export function getSchoolListByRegion(regionId) {
  return request({
    url: '/api/school/listByRegion',
    method: 'get',
    params: { regionId }
  })
}

// 根据学校获取年级列表
export function getGradeListBySchool(schoolId) {
  return request({
    url: '/api/school/gradeList',
    method: 'get',
    params: { schoolId }
  })
}

// 根据年级获取班级列表
export function getClassListByGrade(schoolGradeId) {
  return request({
    url: '/api/school/classList',
    method: 'get',
    params: { schoolGradeId }
  })
}
