Files
ReelShortWeb/src/api/admin/drama.ts
T

74 lines
2.1 KiB
TypeScript

// Author: fruit.com.cn
import request from '@/axios'
import type {
DramaCategory,
DramaItem,
DramaReviewAction,
DramaSaveData,
PageResult
} from './types'
export interface DramaPageParams {
pageIndex?: number
pageSize?: number
keyword?: string
status?: string
categoryId?: number
isHot?: boolean
dramaTypes?: Array<'ANIME' | 'LIVE'>
}
export const pageDramasApi = (params: DramaPageParams) => {
return request.get<PageResult<DramaItem>>({ url: '/admin/dramas/page', params })
}
export const getDramaApi = (id: number) => {
return request.get<DramaItem>({ url: `/admin/dramas/${id}` })
}
export const createDramaApi = (data: DramaSaveData) => {
return request.post<number>({ url: '/admin/dramas', data })
}
export const updateDramaApi = (id: number, data: DramaSaveData) => {
return request.put<void>({ url: `/admin/dramas/${id}`, data })
}
export const deleteDramaApi = (id: number) => {
return request.delete<void>({ url: `/admin/dramas/${id}` })
}
/** 审核与发布:submit / approve / reject / publish / offline */
export const changeDramaStatusApi = (id: number, action: DramaReviewAction, reason?: string) => {
return request.post<void>({ url: `/admin/dramas/${id}/${action}`, data: { reason } })
}
/** 下拉选项(短剧表单用),只返回 id/name */
export const listDramaCategoryOptionsApi = () => {
return request.get<DramaCategory[]>({ url: '/admin/dicts/drama-category' })
}
export interface DramaCategorySaveData {
name: string
sort?: number
status?: number
}
/** 类型管理列表,带短剧数量 */
export const listDramaCategoriesApi = () => {
return request.get<DramaCategory[]>({ url: '/admin/drama-categories' })
}
export const createDramaCategoryApi = (data: DramaCategorySaveData) => {
return request.post<number>({ url: '/admin/drama-categories', data })
}
export const updateDramaCategoryApi = (id: number, data: DramaCategorySaveData) => {
return request.put<void>({ url: `/admin/drama-categories/${id}`, data })
}
export const deleteDramaCategoryApi = (id: number) => {
return request.delete<void>({ url: `/admin/drama-categories/${id}` })
}