{"version":3,"sources":["../../../../src/chatbot/agents/extractors/patient.ts"],"sourcesContent":["import type { AgentExtractor } from \"@/chatbot/types\";\n\nconst emailRegex = /[\\w.-]+@[\\w.-]+\\.[A-Za-z]{2,}/;\nconst cpfRegex = /(\\d{3}[\\.\\s-]?){3}\\d{2}/;\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 PatientNameExtractor implements AgentExtractor {\n  async extract(message: string) {\n    return { name: message.trim() };\n  }\n}\n\nexport class PatientEmailExtractor implements AgentExtractor {\n  async extract(message: string) {\n    const match = message.match(emailRegex);\n    return { email: match ? match[0] : message.trim() };\n  }\n}\n\nexport class PatientCpfExtractor implements AgentExtractor {\n  async extract(message: string) {\n    const match = message.match(cpfRegex);\n    const value = match ? match[0].replace(/[^\\d]/g, \"\") : message.replace(/[^\\d]/g, \"\");\n    return { cpf: value };\n  }\n}\n\nexport class PatientBirthdateExtractor implements AgentExtractor {\n  async extract(message: string) {\n    const match = message.match(dateRegex);\n    return { birthdate: match ? match[0] : message.trim() };\n  }\n}\n"],"mappings":";AAEA,IAAM,aAAa;AACnB,IAAM,WAAW;AACjB,IAAM,YAAY;AAEX,IAAM,uBAAN,MAAqD;AAAA,EAC1D,MAAM,QAAQ,SAAiB;AAC7B,WAAO,EAAE,MAAM,QAAQ,KAAK,EAAE;AAAA,EAChC;AACF;AAEO,IAAM,wBAAN,MAAsD;AAAA,EAC3D,MAAM,QAAQ,SAAiB;AAC7B,UAAM,QAAQ,QAAQ,MAAM,UAAU;AACtC,WAAO,EAAE,OAAO,QAAQ,MAAM,CAAC,IAAI,QAAQ,KAAK,EAAE;AAAA,EACpD;AACF;AAEO,IAAM,sBAAN,MAAoD;AAAA,EACzD,MAAM,QAAQ,SAAiB;AAC7B,UAAM,QAAQ,QAAQ,MAAM,QAAQ;AACpC,UAAM,QAAQ,QAAQ,MAAM,CAAC,EAAE,QAAQ,UAAU,EAAE,IAAI,QAAQ,QAAQ,UAAU,EAAE;AACnF,WAAO,EAAE,KAAK,MAAM;AAAA,EACtB;AACF;AAEO,IAAM,4BAAN,MAA0D;AAAA,EAC/D,MAAM,QAAQ,SAAiB;AAC7B,UAAM,QAAQ,QAAQ,MAAM,SAAS;AACrC,WAAO,EAAE,WAAW,QAAQ,MAAM,CAAC,IAAI,QAAQ,KAAK,EAAE;AAAA,EACxD;AACF;","names":[]}