import {OpenFlareBaseService} from './base.service' import type { ZoneDomainItem, ZoneDomainMutationPayload, ZoneItem, ZoneMutationPayload, ZoneOverview, ZoneStats, ZoneStatsRange, } from './types' export const zoneQueryKey = ['openflare', 'zones'] as const export class ZoneService extends OpenFlareBaseService { protected static override readonly basePath = '/api/v1/d/zones' static list(): Promise { return this.get('/') } static getOverview(id: number): Promise { return this.get(`/${id}/overview`) } static getStats(id: number, range: ZoneStatsRange = '24h'): Promise { return this.get(`/${id}/stats`, {range}) } static create(payload: ZoneMutationPayload): Promise { return this.post('/', payload) } static update(id: number, payload: ZoneMutationPayload): Promise { return this.post(`/${id}/update`, payload) } static deleteById(id: number): Promise { return this.post(`/${id}/delete`) } } export class ZoneDomainService extends OpenFlareBaseService { protected static override readonly basePath = '/api/v1/d/zones' static create(zoneId: number, payload: ZoneDomainMutationPayload): Promise { return this.post(`/${zoneId}/domains`, payload) } static update(zoneId: number, id: number, payload: ZoneDomainMutationPayload): Promise { return this.post(`/${zoneId}/domains/${id}/update`, payload) } static deleteById(zoneId: number, id: number): Promise { return this.post(`/${zoneId}/domains/${id}/delete`) } }