import type { ModuleDefinition, ModuleKey, TenantContext } from "../../types/src/index";

export const moduleCatalog: ModuleDefinition[] = [
  {
    key: "prenotazioni",
    name: "Prenotazioni",
    description: "Controlla prenotazioni, tavoli e flusso di sala in una regia unica.",
    status: "active",
    kind: "legacy",
    route_path: "/modules/prenotazioni",
    short_description: "Agenda, tavoli e sala coordinati in un'unica esperienza operativa.",
    technical_notes: [
      "Panoramica del giorno sempre leggibile.",
      "Piantina di sala aggiornata e pronta all'uso.",
      "Assegnazioni e priorita piu facili da governare."
    ],
    future_integration_state: "Estendibile con nuove automazioni e canali di contatto.",
    stack_summary: "Esperienza web dedicata al team di sala",
    source_path: "PRENOTAZIONI_IA",
    preview_mode: "link"
  },
  {
    key: "menu",
    name: "Menu",
    description: "Guida il cliente tra piatti, vini e pairing con un concierge digitale coerente con il locale.",
    status: "active",
    kind: "legacy",
    route_path: "/modules/menu",
    short_description: "Assistente menu e carta vini con tono premium e risposte basate sui contenuti del locale.",
    technical_notes: [
      "Consigli piu coerenti con la selezione del locale.",
      "Esperienza piu curata per il cliente finale.",
      "Accesso immediato a piatti, vini e abbinamenti."
    ],
    future_integration_state: "Pronto a crescere con nuovi contenuti e nuovi touchpoint.",
    stack_summary: "Concierge digitale dedicato al menu",
    source_path: "MENU2.0",
    preview_mode: "iframe"
  },
  {
    key: "ordini",
    name: "Ordini",
    description: "Gestisci catalogo prodotti, richieste ai fornitori e storico ordini in un unico flusso operativo.",
    status: "active",
    kind: "platform",
    route_path: "/modules/ordini",
    short_description: "Modulo nativo per prodotti, ordini sospesi, storico e riepiloghi fornitori.",
    technical_notes: [
      "Catalogo prodotti persistito su SQL.",
      "Ordini confermati e sospesi disponibili da archivio condiviso.",
      "Storico annuale, confronto e note accessibili dal modulo."
    ],
    future_integration_state: "Pronto per crescere con tenancy, permessi e policy di approvazione.",
    stack_summary: "Frontend statico + FastAPI + PostgreSQL",
    source_path: "apps/ordini",
    preview_mode: "link"
  },
  {
    key: "homemade",
    name: "Libro Homemade",
    description: "Raccogli ricette, preparazioni e sapere interno del locale in un archivio ordinato.",
    status: "inactive",
    kind: "platform",
    route_path: "/modules/homemade",
    short_description: "Uno spazio dedicato a ricette, preparazioni e contenuti proprietari.",
    technical_notes: [
      "Patrimonio interno piu facile da consultare.",
      "Preparazioni e ricette raccolte in ordine.",
      "Base pronta per il lavoro del team e la formazione."
    ],
    future_integration_state: "Disponibile su richiesta come estensione dedicata.",
    stack_summary: "Archivio editoriale del locale",
    source_path: null,
    preview_mode: "none"
  }
];

export function getModuleDefinition(moduleKey: ModuleKey): ModuleDefinition | undefined {
  return moduleCatalog.find((module) => module.key === moduleKey);
}

export const tenantContext: TenantContext = {
  tenant: {
    id: "tenant_demo_hospitality",
    name: "BACO' LOUNGE BAR",
    slug: "baco-lounge-bar",
    created_at: "2026-03-30T00:00:00Z"
  },
  venues: [
    {
      id: "venue_vip_club",
      tenant_id: "tenant_demo_hospitality",
      name: "BACO' LOUNGE BAR",
      address: "Via Roma 1, Italia",
      created_at: "2026-03-30T00:00:00Z"
    }
  ],
  users: [
    {
      id: "user_admin_demo",
      tenant_id: "tenant_demo_hospitality",
      email: "owner@demo-hospitality.local",
      role: "owner",
      created_at: "2026-03-30T00:00:00Z"
    },
    {
      id: "user_manager_demo",
      tenant_id: "tenant_demo_hospitality",
      email: "manager@demo-hospitality.local",
      role: "manager",
      created_at: "2026-03-30T00:00:00Z"
    }
  ],
  tenant_modules: [
    {
      id: "tm_prenotazioni_demo",
      tenant_id: "tenant_demo_hospitality",
      module_key: "prenotazioni",
      enabled: true,
      plan_name: "Legacy Pilot",
      activated_at: "2026-03-30T00:00:00Z",
      expires_at: null
    },
    {
      id: "tm_menu_demo",
      tenant_id: "tenant_demo_hospitality",
      module_key: "menu",
      enabled: true,
      plan_name: "Legacy Pilot",
      activated_at: "2026-03-30T00:00:00Z",
      expires_at: null
    },
    {
      id: "tm_ordini_demo",
      tenant_id: "tenant_demo_hospitality",
      module_key: "ordini",
      enabled: true,
      plan_name: "Platform Active",
      activated_at: "2026-04-01T00:00:00Z",
      expires_at: null
    },
    {
      id: "tm_homemade_demo",
      tenant_id: "tenant_demo_hospitality",
      module_key: "homemade",
      enabled: false,
      plan_name: "Planned",
      activated_at: null,
      expires_at: null
    }
  ]
};
