export interface LocationDTO {
  id?: number;
  mapId?: number;
  name: string;
  category?: string;
  type: LocationType;
  geometry: GeometryDTO;
  parentId?: number;
  createdAt?: string;
  contents?: LocationContentDTO[];
  longitude?: number;
  latitude?: number;
  
  // Multi-language support
  translations?: TranslationDTO;
  
  // Hierarchical data (child locations)
  children?: LocationDTO[];
}

export interface TranslationDTO {
  ar: string;  // Arabic
  en: string;  // English
  fr: string;  // French
}

export interface LocationContentDTO {
  locationId?: number;
  content: { [key: string]: any };
}

export interface GeometryDTO {
  type: string; // "Point" | "Polygon"
  coordinates: any; // GeoJSON format
}

export enum LocationType {
  COUNTRY = 'COUNTRY',
  REGION = 'REGION',
  CITY = 'CITY',
  ZONE = 'ZONE',
  POINT = 'POINT'
}
