/**
 * Restaurant Group Model
 * Represents a group of restaurant brands
 */
export interface RestaurantGroup {
  id: string;
  name: string;
  description?: string;
  logo_url?: string;
  contact_email?: string;
  contact_phone?: string;
  address?: string;
  website?: string;
  created_at: Date;
  updated_at: Date;
}

/**
 * Restaurant Brand Model
 * Represents a brand within a restaurant group
 */
export interface RestaurantBrand {
  id: string;
  group_id: string;
  name: string;
  description?: string;
  logo_url?: string;
  theme_color?: string;
  created_at: Date;
  updated_at: Date;
}

/**
 * Restaurant Outlet Model
 * Represents a physical outlet/location of a restaurant brand
 */
export interface RestaurantOutlet {
  id: string;
  brand_id: string;
  name: string;
  country: string;
  address: string;
  contact_phone?: string;
  contact_email?: string;
  manager_name?: string;
  pos_id: string; // ID used in the POS system
  currency: string;
  active: boolean;
  created_at: Date;
  updated_at: Date;
}

/**
 * Hierarchical Restaurant Data
 * Complete restaurant data including group, brand and outlets
 */
export interface RestaurantHierarchy {
  group: RestaurantGroup;
  brands: Array<{
    brand: RestaurantBrand;
    outlets: RestaurantOutlet[];
  }>;
}
