import { OnModuleInit } from '@nestjs/common'; import { CreateZoneInput, DeletionResponse, MutationAddMembersToZoneArgs, MutationRemoveMembersFromZoneArgs, UpdateZoneInput } from '@subit/common/lib/generated-types'; import { ID } from '@subit/common/lib/shared-types'; import { RequestContext } from '../../api/common/request-context'; import { Zone } from '../../entity/zone/zone.entity'; import { TransactionalConnection } from '../transaction/transactional-connection'; export declare class ZoneService implements OnModuleInit { private connection; /** * We cache all Zones to avoid hitting the DB many times per request. */ private zones; constructor(connection: TransactionalConnection); onModuleInit(): Promise; findAll(ctx: RequestContext): Zone[]; findOne(ctx: RequestContext, zoneId: ID): Promise; create(ctx: RequestContext, input: CreateZoneInput): Promise; update(ctx: RequestContext, input: UpdateZoneInput): Promise; delete(ctx: RequestContext, id: ID): Promise; addMembersToZone(ctx: RequestContext, input: MutationAddMembersToZoneArgs): Promise; removeMembersFromZone(ctx: RequestContext, input: MutationRemoveMembersFromZoneArgs): Promise; private getCountriesFromIds; /** * TODO: This is not good for multi-instance deployments. A better solution will * need to be found without adversely affecting performance. */ updateZonesCache(ctx?: RequestContext): Promise; }