changemaker.lite/api/dist/modules/map/locations/locations.service.d.ts

266 lines
8.6 KiB
TypeScript

import { Prisma, SupportLevel } from '@prisma/client';
import type { CreateLocationInput, UpdateLocationInput, ListLocationsInput, BulkImportInput } from './locations.schemas';
interface ImportFilters {
cutPolygon?: number[][][];
bounds?: {
north: number;
south: number;
east: number;
west: number;
};
city?: string;
province?: string;
}
export declare const locationsService: {
findAll(filters: ListLocationsInput): Promise<{
locations: ({
addresses: {
id: string;
firstName: string | null;
lastName: string | null;
supportLevel: import(".prisma/client").$Enums.SupportLevel | null;
unitNumber: string | null;
sign: boolean;
}[];
} & {
id: string;
createdAt: Date;
updatedAt: Date;
latitude: Prisma.Decimal;
longitude: Prisma.Decimal;
createdByUserId: string | null;
updatedByUserId: string | null;
address: string;
postalCode: string | null;
province: string | null;
federalDistrict: string | null;
buildingUse: number | null;
locGuid: string | null;
buildingType: import(".prisma/client").$Enums.BuildingType;
totalUnits: number;
buildingNotes: string | null;
geocodeConfidence: number | null;
geocodeProvider: import(".prisma/client").$Enums.GeocodeProvider | null;
})[];
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
}>;
findById(id: string): Promise<{
addresses: {
id: string;
email: string | null;
phone: string | null;
notes: string | null;
firstName: string | null;
lastName: string | null;
supportLevel: import(".prisma/client").$Enums.SupportLevel | null;
unitNumber: string | null;
sign: boolean;
signSize: string | null;
}[];
} & {
id: string;
createdAt: Date;
updatedAt: Date;
latitude: Prisma.Decimal;
longitude: Prisma.Decimal;
createdByUserId: string | null;
updatedByUserId: string | null;
address: string;
postalCode: string | null;
province: string | null;
federalDistrict: string | null;
buildingUse: number | null;
locGuid: string | null;
buildingType: import(".prisma/client").$Enums.BuildingType;
totalUnits: number;
buildingNotes: string | null;
geocodeConfidence: number | null;
geocodeProvider: import(".prisma/client").$Enums.GeocodeProvider | null;
}>;
create(data: CreateLocationInput, userId: string | null): Promise<{
id: string;
createdAt: Date;
updatedAt: Date;
latitude: Prisma.Decimal;
longitude: Prisma.Decimal;
createdByUserId: string | null;
updatedByUserId: string | null;
address: string;
postalCode: string | null;
province: string | null;
federalDistrict: string | null;
buildingUse: number | null;
locGuid: string | null;
buildingType: import(".prisma/client").$Enums.BuildingType;
totalUnits: number;
buildingNotes: string | null;
geocodeConfidence: number | null;
geocodeProvider: import(".prisma/client").$Enums.GeocodeProvider | null;
}>;
update(id: string, data: UpdateLocationInput, userId: string): Promise<{
id: string;
createdAt: Date;
updatedAt: Date;
latitude: Prisma.Decimal;
longitude: Prisma.Decimal;
createdByUserId: string | null;
updatedByUserId: string | null;
address: string;
postalCode: string | null;
province: string | null;
federalDistrict: string | null;
buildingUse: number | null;
locGuid: string | null;
buildingType: import(".prisma/client").$Enums.BuildingType;
totalUnits: number;
buildingNotes: string | null;
geocodeConfidence: number | null;
geocodeProvider: import(".prisma/client").$Enums.GeocodeProvider | null;
}>;
delete(id: string): Promise<void>;
bulkDelete(ids: string[]): Promise<{
deleted: number;
}>;
getHistory(locationId: string, page?: number, limit?: number): Promise<{
history: ({
user: {
id: string;
email: string;
name: string | null;
role: import(".prisma/client").$Enums.UserRole;
} | null;
} & {
id: string;
createdAt: Date;
userId: string | null;
action: import(".prisma/client").$Enums.LocationHistoryAction;
metadata: Prisma.JsonValue | null;
locationId: string;
field: string | null;
oldValue: string | null;
newValue: string | null;
})[];
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
}>;
geocodeAddress(address: string): Promise<import("../geocoding/geocoding.service").GeocodeResult>;
geocodeMissing(): Promise<{
total: number;
geocoded: number;
failed: number;
}>;
getStats(): Promise<{
total: number;
buildingTypes: {
SINGLE_FAMILY: number;
MULTI_UNIT: number;
MIXED_USE: number;
COMMERCIAL: number;
};
geocoded: number;
ungeocoded: number;
confidence: {
high: number;
medium: number;
low: number;
none: number;
average: number | null;
};
providers: {
nominatim: number;
mapbox: number;
arcgis: number;
photon: number;
google: number;
locationiq: number;
manual: number;
};
}>;
getAllForMap(bounds?: {
minLat: number;
maxLat: number;
minLng: number;
maxLng: number;
}, limit?: number): Promise<({
addresses: {
id: string;
email: string | null;
phone: string | null;
notes: string | null;
firstName: string | null;
lastName: string | null;
supportLevel: import(".prisma/client").$Enums.SupportLevel | null;
unitNumber: string | null;
sign: boolean;
signSize: string | null;
}[];
} & {
id: string;
createdAt: Date;
updatedAt: Date;
latitude: Prisma.Decimal;
longitude: Prisma.Decimal;
createdByUserId: string | null;
updatedByUserId: string | null;
address: string;
postalCode: string | null;
province: string | null;
federalDistrict: string | null;
buildingUse: number | null;
locGuid: string | null;
buildingType: import(".prisma/client").$Enums.BuildingType;
totalUnits: number;
buildingNotes: string | null;
geocodeConfidence: number | null;
geocodeProvider: import(".prisma/client").$Enums.GeocodeProvider | null;
})[]>;
getPublicLocations(bounds?: {
minLat: number;
maxLat: number;
minLng: number;
maxLng: number;
}): Promise<{
id: string;
latitude: Prisma.Decimal;
longitude: Prisma.Decimal;
addresses: {
id: string;
supportLevel: import(".prisma/client").$Enums.SupportLevel | null;
unitNumber: string | null;
sign: boolean;
signSize: string | null;
}[];
address: string;
}[]>;
importFromCsv(buffer: Buffer, userId: string): Promise<{
total: number;
success: number;
warnings: number;
failed: number;
errors: string[];
}>;
reverseGeocode(latitude: number, longitude: number): Promise<import("../geocoding/geocoding.service").ReverseGeocodeResult>;
importBulk(buffer: Buffer, userId: string, options: BulkImportInput, filters?: ImportFilters): Promise<{
total: number;
created: number;
skippedDuplicate: number;
skippedOutOfBounds: number;
skippedInvalid: number;
errors: string[];
}>;
exportToCsv(filters?: {
supportLevel?: SupportLevel;
hasSign?: boolean;
}): Promise<string>;
};
export {};
//# sourceMappingURL=locations.service.d.ts.map