import z from 'zod' import koa from 'koa' import { SiteManage } from './interface' export interface ReqSiteInfo extends SiteManage.ReqSiteInfo {} export interface ReqSiteTags extends SiteManage.ReqSiteTags {} export const URL = { getSiteManageInfo: '/operations/operate/site-manage', postRefreshSiteInfo: '/operations/operate/site-manage', getSiteOfflineInfo: '/operations/operate/site-manage-offline', postRefreshOfflineSiteInfo: '/operations/operate/site-manage-offline', eventsRefreshSiteInfo: '/operations/operate/site-manage/events', getSiteInfo: '/operations/operate/site-info', postSiteTags: '/operations/operate/site-tags', getSiteMap: '/operations/operate/site-map', } export function checkReqSiteInfoParams(ctx: koa.Context): ReqSiteInfo { const schemaReqSiteInfoParams = z.object({ serialNumber: z.coerce.string().optional(), apowerSn: z.coerce.string().optional(), apowerNum: z.coerce.number().optional(), activeStatus: z.coerce.number().optional(), networkStatus: z.coerce.number().optional(), country: z.coerce.string().optional(), province: z.coerce.string().array().optional(), tags: z.coerce.string().array().optional(), pageNum: z.coerce.number(), pageSize: z.coerce.number() }) return schemaReqSiteInfoParams.parse(ctx.request.body) } export function checkReqSiteTagsParams(ctx: koa.Context): ReqSiteTags { const schemaReqSiteTagsParams = z.object({ serialNumber: z.coerce.string(), tags: z.coerce.string().array() }) return schemaReqSiteTagsParams.parse(ctx.request.body) }