import type { AnswerDocsByFormId, AnswersByFormId } from "./Answer.js"; import type { GeoCoordinates, GeoPosition, IdObject, LinkMemberOfRef, LinkMemberRef, LinkProjectRef, LinkEventsRef, OpeningHoursEntry, ParentsMap, PostalAddress, DateValue, SocialNetwork } from "./common.js"; import type EJSONType from "../../EJSONType.js"; type ObjectIDCtor = typeof EJSONType["ObjectID"]; type ObjectID = InstanceType; export interface OrganizationLinksBlock { members?: Record; projects?: Record; memberOf?: Record; events?: Record; [k: string]: unknown; } /** * Types d'organisations supportés */ export declare const ORGANIZATION_TYPES: readonly ["NGO", "LocalBusiness", "Group", "GovernmentOrganization", "Cooperative"]; export type OrganizationType = (typeof ORGANIZATION_TYPES)[number]; export interface OrganizationItemJson { _id: IdObject; collection: "organizations"; name: string; created?: DateValue; updated?: DateValue; modified?: DateValue; parent?: ParentsMap; description?: string; shortDescription?: string; slug?: string; type?: OrganizationType; address?: PostalAddress; geo?: GeoCoordinates; geoPosition?: GeoPosition; tags?: string[]; links?: OrganizationLinksBlock; creator?: string; openingHours?: OpeningHoursEntry[]; profilImageUrl?: string; profilMediumImageUrl?: string; profilThumbImageUrl?: string; profilMarkerImageUrl?: string; email?: string; url?: string; socialNetwork?: SocialNetwork; /** * Enrichissement par les Answers liées au résultat — renvoyé uniquement par * `/costum/navigator/gettl` (variant `navigator-tl` de `searchCostum`). * Forme JSON brute (avant linkage par `_transformServerData`). */ answers?: AnswerDocsByFormId; [key: string]: unknown; } export interface OrganizationItemNormalized { id: string; _id: ObjectID; collection: "organizations"; name: string; created?: Date; updated?: Date; modified?: Date; parent?: ParentsMap; description?: string; shortDescription?: string; slug?: string; type?: OrganizationType; address?: PostalAddress; geo?: GeoCoordinates; geoPosition?: GeoPosition; tags?: string[]; links?: OrganizationLinksBlock; creator?: string; openingHours?: OpeningHoursEntry[]; profilImageUrl?: string; profilMediumImageUrl?: string; profilThumbImageUrl?: string; profilMarkerImageUrl?: string; email?: string; url?: string; socialNetwork?: SocialNetwork; /** * Enrichissement par les Answers liées au résultat — renvoyé uniquement par * `/costum/navigator/gettl` (variant `navigator-tl` de `searchCostum`). * Forme normalisée (après linkage par `Organization._transformServerData`) : `Answer[]` par formId. */ answers?: AnswersByFormId; [key: string]: unknown; } export {};