{"version":3,"sources":["../../../../src/chatbot/agents/extractors/appointment.ts"],"sourcesContent":["import type { AgentExtractor } from \"@/chatbot/types\";\n\nconst dateRegex = /(\\d{1,2}[\\/\\-]\\d{1,2}[\\/\\-]\\d{2,4})|([A-Za-z]+\\s+\\d{1,2}(st|nd|rd|th)?,?\\s+\\d{4})/;\n\nexport class NewAppointmentExtractor implements AgentExtractor {\n  async extract(message: string) {\n    const normalized = message.trim().toLowerCase();\n    const isAffirmative = /\\b(yes|sure|claro|sim|schedule|book)\\b/.test(normalized);\n    return { isNewAppointment: isAffirmative };\n  }\n}\n\nexport class AppointmentDateExtractor implements AgentExtractor {\n  async extract(message: string) {\n    const match = message.match(dateRegex);\n    return { date: match ? match[0] : message.trim() };\n  }\n}\n\nexport class AppointmentServiceExtractor implements AgentExtractor {\n  async extract(message: string) {\n    return { service: message.trim() };\n  }\n}\n\nexport class AppointmentProfessionalExtractor implements AgentExtractor {\n  async extract(message: string) {\n    return { professional: message.trim() };\n  }\n}\n\nexport class AppointmentPaymentExtractor implements AgentExtractor {\n  async extract(message: string) {\n    return { payment: message.trim() };\n  }\n}\n"],"mappings":";AAEA,IAAM,YAAY;AAEX,IAAM,0BAAN,MAAwD;AAAA,EAC7D,MAAM,QAAQ,SAAiB;AAC7B,UAAM,aAAa,QAAQ,KAAK,EAAE,YAAY;AAC9C,UAAM,gBAAgB,yCAAyC,KAAK,UAAU;AAC9E,WAAO,EAAE,kBAAkB,cAAc;AAAA,EAC3C;AACF;AAEO,IAAM,2BAAN,MAAyD;AAAA,EAC9D,MAAM,QAAQ,SAAiB;AAC7B,UAAM,QAAQ,QAAQ,MAAM,SAAS;AACrC,WAAO,EAAE,MAAM,QAAQ,MAAM,CAAC,IAAI,QAAQ,KAAK,EAAE;AAAA,EACnD;AACF;AAEO,IAAM,8BAAN,MAA4D;AAAA,EACjE,MAAM,QAAQ,SAAiB;AAC7B,WAAO,EAAE,SAAS,QAAQ,KAAK,EAAE;AAAA,EACnC;AACF;AAEO,IAAM,mCAAN,MAAiE;AAAA,EACtE,MAAM,QAAQ,SAAiB;AAC7B,WAAO,EAAE,cAAc,QAAQ,KAAK,EAAE;AAAA,EACxC;AACF;AAEO,IAAM,8BAAN,MAA4D;AAAA,EACjE,MAAM,QAAQ,SAAiB;AAC7B,WAAO,EAAE,SAAS,QAAQ,KAAK,EAAE;AAAA,EACnC;AACF;","names":[]}