{"context":{"domain":"adonis"},"layers":{"ApplicationLayer":{"reference":"ApplicationLayer","availableInstances":[{"reference":"ComponentsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"SystemsDataSet","params":{"filter":{"domain":"data2"},"pagination":{"size":1},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSource"}}}},{"reference":"ExternalComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"SystemsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5e3b796d6228227ca637d0f4","name":"data2","domain":"data2","organization":"62292184611f480b3191c37c","visibility":"public","updatedAt":"2026-07-27T14:19:36.810Z"}]}},{"reference":"OrganizationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"DataComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"OneFileComponentInstancesDataSet","params":{"pagination":{"size":1},"master":{"dataset":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSet"}},"localField":"system","masterField":"_id"},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"FileComponentInstancesDataSource"}}}},{"reference":"ApplicationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ServiceComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@Data2TableDataSource","reference":"FileComponentInstancesDataSource","params":{"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}}]}},{"component":"data2-core@MemoryDataSource","reference":"EmptyDataSource","params":{"initialData":[]}},{"reference":"ComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"UserComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"DataComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ServiceComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ExternalComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ApplicationsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}}],"processesParams":{}},"HostApplicationLayer":{"reference":"HostApplicationLayer","availableInstances":[{"_id":"5f15ff190528b92601890f71","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"SystemsTableDataSource"}},"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"domain"}}},"pk":"_id","fields":[{"component":"data2-core-types@FieldReference","params":{"key":"_id"}},{"component":"data2-core-types@FieldReference","params":{"key":"name"}},{"component":"data2-core-types@FieldReference","params":{"key":"domain"}},{"component":"data2-core-types@FieldReference","params":{"key":"visibility"}},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization._id"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.name"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.billingStatus"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.publicTrial.active"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"settings.defaultAccessPolicy"}}},"break":true}],"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"staticPagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"policies":[{"component":"data2-core-auth@Policy","params":{"allow":{"params":{"actions":[{"params":{"components":[{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"_id"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"domain"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"}]},"component":"data2-core-logical-operators@Or"}]},"component":"data2-core-flow@Series"}}}]},"reference":"SystemsDataSet","updatedAt":"2026-08-07T21:51:24.037Z","createdAt":"2020-07-20T20:31:21.838Z"},{"_id":"5f1601ce0528b92601890f7c","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":1000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"sort":{"params.package":1,"params.component":1},"pk":"_id","autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"staticFilter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"filter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}}},"reference":"ComponentsDataSet","updatedAt":"2025-11-05T19:37:01.935Z","createdAt":"2020-07-20T20:42:54.898Z"},{"_id":"5f9041dbc8da12be8b94aea4","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":2000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"UserComponentsDataSet","updatedAt":"2025-11-06T21:06:58.095Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"65d8c4fabc9dbb8f94de8d53","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ExternalComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ExternalComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:23.742Z","createdAt":"2024-02-23T16:17:01.816Z"},{"reference":"SystemsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"69651bdddc863af2ecd97d3d","name":"app","domain":"adonis","visibility":"public","settings":{"defaultAccessPolicy":"public"},"updatedAt":"2026-07-27T14:19:36.810Z","createdAt":"2026-01-12T16:05:49.767Z"}]}},{"reference":"ComponentsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5f52a278a575399a45d239b4","component":"data2-core-types@Component","params":{"package":"data2-core-primitives","component":"Router","interactions":{"component":"data2-core-types@FieldSet","params":{"fields":{"goBack":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.goBack","args":[]}}}},"icon":{"component":"data2-core-primitives@String","params":{"content":"arrow-left"}},"visibility":"public"}},"goTo":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"component":"data2-core-types@Reference","params":{"reference":"url"}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}}}]}},"parameters":[{"component":"data2-core-primitives@String","params":{"content":"url"}},{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}]},"break":true},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Path to route"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Path to redirect user"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Boolean"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Preserve Query"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Preserve query string parameters  preserve query parameters on navigating."}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"}]}},"open":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"pathname":{"component":"data2-core-types@Reference","params":{"reference":"value"}}}]}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}]}},"close":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":"close"}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"times"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}],"description":{"component":"data2-core-primitives@String","params":{"content":"Closes a window that was opened via router.open."}}}}}}}}},{"_id":"620d28658271aa4129919d89","component":"data2-core-types@Component","params":{"package":"data2-interface-services","component":"DeviceController","interactions":{"params":{"fields":{"postMessage":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@String","title":{"component":"data2-core-primitives@String","params":{"content":"data"}}}}]},"component":"data2-core-types@ComponentParameter"},"print":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"zoom":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Number"}},"title":{"component":"data2-core-primitives@String","params":{"content":"zoom"}},"visibility":"public"}}},"visibility":"public"},"component":"data2-core-types@ComponentParameter"}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"share":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}}},"component":"data2-core-types@ComponentParameter"},"clipboard.copy":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"clipboard.paste":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"download":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}]},"component":"data2-core-types@ComponentParameter"},"downloadUrl":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Url"}}}}]},"component":"data2-core-types@ComponentParameter"},"promptFiles":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"params":{"fields":{"multiple":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Multiple"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Whether or not to allow selecting multiple files"}},"component":"data2-core-primitives@Boolean"}},"acceptedFormats":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Accepted Formats"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Accepted file formats"}},"component":"data2-core-primitives@String","list":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},"timeout":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Timeout"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Max milliseconds to wait for file upload"}},"component":"data2-core-primitives@Number"}}}},"component":"data2-core-types@FieldSet"}}}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"meetingRecord":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","definition":{"params":{"actions":[{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"meeting"}},"script":{"component":"data2-core-primitives@String","params":{"content":"(function() {\n  let mediaRecorder;\n  let audioChunks = [];\n  let combinedStream;\n  let audioContext;\n  \n  window.meetingCapture = async function() {\n    try {\n      // Solicitar acesso ao áudio da guia (e vídeo, que será ignorado depois)\n      const tabStream = await navigator.mediaDevices.getDisplayMedia({ \n        video: true, // Necessário para alguns navegadores\n        audio: true\n      });\n      \n      // Remover a trilha de vídeo\n      const tabAudioTrack = tabStream.getAudioTracks()[0];\n      \n      // Solicitar acesso ao microfone\n      const micStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n      const micAudioTrack = micStream.getAudioTracks()[0];\n      \n      // Criar um novo MediaStream com ambas as trilhas de áudio\n      combinedStream = new MediaStream([tabAudioTrack, micAudioTrack]);\n      \n      // Criar um contexto de áudio para misturar os streams\n      audioContext = new AudioContext();\n      const destination = audioContext.createMediaStreamDestination();\n      \n      // Conectar a trilha de áudio da guia\n      const tabSource = audioContext.createMediaStreamSource(new MediaStream([tabAudioTrack]));\n      tabSource.connect(destination);\n      \n      // Conectar a trilha de áudio do microfone\n      const micSource = audioContext.createMediaStreamSource(new MediaStream([micAudioTrack]));\n      micSource.connect(destination);\n      \n      // Iniciar gravação com o stream misturado\n      mediaRecorder = new MediaRecorder(destination.stream);\n      audioChunks = [];\n      mediaRecorder.ondataavailable = (e) => audioChunks.push(e.data);\n      mediaRecorder.start();\n      \n      console.log('Gravação iniciada. Chame meetingCaptureStop() para finalizar.');\n    } catch (error) {\n      console.error('Erro ao iniciar a captura:', error);\n    }\n  };\n  \n  window.meetingCaptureStop = function() {\n    return new Promise((resolve, reject) => {\n      if (!mediaRecorder) {\n        reject('Nenhuma gravação em andamento.');\n        return;\n      }\n      \n      mediaRecorder.onstop = () => {\n        const audioBlob = new Blob(audioChunks, { type: 'audio/webm' });\n        combinedStream.getTracks().forEach(track => track.stop());\n        audioContext.close();\n        \n        resolve(audioBlob);\n        console.log('Gravação finalizada. O arquivo de áudio está pronto para upload.');\n      };\n      \n      mediaRecorder.stop();\n    });\n  };\n})();"}}},"component":"data2-core-web@Script"},{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCapture"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"meetingRecordStop":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}],"definition":{"params":{"actions":[{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCaptureStop"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"notify":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"private","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","parameters":{"title":{"params":{"component":"data2-core-primitives@String","index":{"component":"data2-core-primitives@Number","params":{"content":0}},"title":{"component":"data2-core-primitives@String","params":{"content":"title"}}},"component":"data2-core-types@ComponentParameter"},"sound":{"params":{"component":"data2-core-types@FileComponentUrlReference","index":{"component":"data2-core-primitives@Number","params":{"content":1}},"title":{"component":"data2-core-primitives@String","params":{"content":"sound"}}},"component":"data2-core-types@ComponentParameter"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}]},"component":"data2-core-types@ComponentParameter"}}},"component":"data2-core-types@FieldSet"}}},{"_id":"6a330e4d926d2ad8226384d8","component":"data2-core-types@Component","system":"69651bdddc863af2ecd97d3d","params":{"extends":"data2-core-primitives@Block","component":"PanelSidebar","package":"adonis","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n  :host,.sb{height:100%}\n  .sb{background:#141414;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;font-family:'Inter',system-ui,sans-serif;color:#fff;box-sizing:border-box}\n  .top{background:var(--acc,#F4C400);color:#000;padding:9px 20px;font-size:11px;letter-spacing:.14em;font-weight:700;text-transform:uppercase;display:flex;align-items:center;gap:8px}\n  .dot{width:7px;height:7px;border-radius:50%;background:#000}\n  .brand{padding:22px 20px 18px;border-bottom:1px solid #2a2a2a}\n  .brand .w{font-family:'Anton',sans-serif;font-size:26px;letter-spacing:.04em;line-height:.85}\n  .brand small{display:block;font-size:9px;letter-spacing:.4em;color:#9a9a9a;margin-top:6px;font-weight:600}\n  .brand small b{color:#fff}\n  .sec{padding:18px 20px 6px;font-size:9px;letter-spacing:.22em;color:#5a5a5a;font-weight:700;text-transform:uppercase}\n  .nav{display:flex;flex-direction:column;gap:2px;padding:0 10px}\n  .nl{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:8px;color:#9a9a9a;font-size:13px;letter-spacing:.1em;font-weight:700;text-transform:uppercase;cursor:pointer;transition:.13s;border-left:3px solid transparent}\n  .nl:hover{color:#fff;background:#1a1a1a}\n  .nl.on{color:var(--acc,#F4C400);background:#1a1a1a;border-left-color:var(--acc,#F4C400)}\n  .nl .ic{font-size:15px;width:18px;text-align:center}\n  .grow{flex:1}\n  .foot{padding:18px 20px;border-top:1px solid #2a2a2a;color:#4b5563;font-size:9px;letter-spacing:.2em;font-weight:600}\n  `,\n  render(d2){\n    const acc = d2.param('accent') || '#F4C400';\n    let path = '';\n    try{ path = d2.router().path || ''; }catch(e){}\n    if(!path || path==='/') path = d2.param('currentPath') || '/catalogo';\n    if(path && path[0]!=='/') path = '/'+path;\n    const items = [\n      {p:'/catalogo', ic:'▦', t:'Catálogo'},\n      {p:'/membros',  ic:'◆', t:'Membros'},\n      {p:'/clientes', ic:'●', t:'Clientes'},\n      {p:'/entrada',  ic:'✓', t:'Entrada'}\n    ];\n    const isOn = (p)=> path===p || (p==='/catalogo' && (path==='/'||path===''));\n    return `<div class=\"sb\" style=\"--acc:${acc}\">\n      <div class=\"top\"><span class=\"dot\"></span> Painel Interno</div>\n      <div class=\"brand\"><div class=\"w\">TEMPO</div><small>by <b>PORSCHE</b></small></div>\n      <div class=\"sec\">Gestão</div>\n      <div class=\"nav\">\n        ${items.map(i=>`<div class=\"nl ${isOn(i.p)?'on':''}\" data-p=\"${i.p}\"><span class=\"ic\">${i.ic}</span>${i.t}</div>`).join('')}\n      </div>\n      <div class=\"grow\"></div>\n      <div class=\"foot\">v1.0 · BY PORSCHE</div>\n    </div>`;\n  },\n  mounted(d2){\n    d2.on('.nl','click',(e,el)=>{ d2.router().goTo(el.dataset.p); });\n  }\n}"}},"currentPath":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"currentPath"}}}},"accent":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"accent"}}}}}}}}}},{"_id":"6a330f5b926d2ad8226387a6","component":"data2-core-types@Component","system":"69651bdddc863af2ecd97d3d","params":{"extends":"data2-core-primitives@Block","component":"CatalogoScreen","package":"adonis","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n  .scr{height:100%;overflow:auto;background:#0a0a0a;font-family:'Inter',system-ui,sans-serif;color:#fff;box-sizing:border-box}\n  .head{display:flex;align-items:center;gap:14px;padding:28px 36px 18px}\n  .head h2{font-family:'Anton',sans-serif;font-size:22px;letter-spacing:.08em;text-transform:uppercase;margin:0}\n  .bar{flex:1;height:1px;background:#2a2a2a}\n  .tabs{display:flex;gap:8px}\n  .tab{background:transparent;border:1px solid #2a2a2a;color:#9a9a9a;padding:8px 16px;font-size:12px;letter-spacing:.12em;font-weight:600;cursor:pointer;text-transform:uppercase;border-radius:3px}\n  .tab.on{background:#F4C400;color:#000;border-color:#F4C400}\n  .stats{display:flex;gap:14px;flex-wrap:wrap;padding:0 36px 6px}\n  .stat{background:#141414;border:1px solid #2a2a2a;border-left:3px solid #F4C400;padding:12px 20px;min-width:130px}\n  .stat .n{font-family:'Anton',sans-serif;font-size:26px;color:#F4C400}\n  .stat .l{font-size:9px;letter-spacing:.18em;color:#9a9a9a;text-transform:uppercase;margin-top:4px}\n  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));grid-auto-rows:minmax(320px,auto);gap:20px;padding:24px 36px 50px}\n  .loading{padding:40px;color:#9a9a9a}\n  `,\n  render(d2){\n    const st=d2.state; const all=st.all||[]; const f=st.filter||'all';\n    const MEMBER_RE=/(member|founder|sócio|socio|plano|subscription|assinatura)/i;\n    const isMember=p=> MEMBER_RE.test([p.name,p.slug,(p.categories||[]).join(' ')].join(' '));\n    let list=all; if(f==='member')list=all.filter(isMember); if(f==='exp')list=all.filter(p=>!isMember(p));\n    if(st.loading) return `<div class=\"scr\"><div class=\"loading\">Carregando catálogo do site…</div></div>`;\n    if(st.err) return `<div class=\"scr\"><div class=\"loading\" style=\"color:#ffce7a\">⚠ ${st.err}<div style=\"margin-top:14px\"><button class=\"tab retry\" style=\"cursor:pointer\">↺ Tentar de novo</button></div></div></div>`;\n    const cfgDs=d2.data('config'); const cfgs=(cfgDs&&cfgDs.records())||[];\n    const byId=id=>cfgs.find(c=>String(c.product_id)===String(id));\n    const cards=list.map(p=> d2.render(d2.param('productCard'),{record:{...p,isMembership:isMember(p),savedConfig:byId(p.id)},config:cfgDs?cfgDs.raw||d2.params.config:d2.params.config},{key:p.id})).join('');\n    const stats=[[all.length,'Produtos'],[all.filter(isMember).length,'Memberships'],[cfgs.length,'Parametrizados'],[cfgs.filter(c=>c.synced).length,'Sincronizados']];\n    return `<div class=\"scr\">\n      <div class=\"head\"><h2>Catálogo</h2><div class=\"bar\"></div><div class=\"tabs\">\n        <button class=\"tab ${f==='all'?'on':''}\" data-f=\"all\">Tudo</button>\n        <button class=\"tab ${f==='member'?'on':''}\" data-f=\"member\">Memberships</button>\n        <button class=\"tab ${f==='exp'?'on':''}\" data-f=\"exp\">Experiências</button></div></div>\n      <div class=\"stats\">${stats.map(([n,l])=>`<div class=\"stat\"><div class=\"n\">${n}</div><div class=\"l\">${l}</div></div>`).join('')}</div>\n      <div class=\"grid\">${cards||'<div class=\"loading\">Nada por aqui.</div>'}</div></div>`;\n  },\n  mounted(d2){\n    const decode=s=>String(s||'').replace(/&amp;/g,'&').replace(/&#8211;/g,'–').replace(/&#038;/g,'&');\n    const KEY={authorization:'sk_live_hhaK2dcQw0jAyYEfAcNpPgUTPqVVGwqC'};\n    const load=async()=>{ d2.state.loading=true; d2.state.err=null;\n      try{ const r=await d2.rush('proxy-products').invoke({},{headers:KEY}); const body=r&&r.data!==undefined?r.data:r; const arr=Array.isArray(body)?body:(body&&body.products)||[];\n        d2.state.all=arr.map(p=>({ id:p.id, name:decode(p.name), slug:p.slug, sku:p.sku, price:(p.prices&&(p.prices.price?('R$ '+(Number(p.prices.price)/Math.pow(10,p.prices.currency_minor_unit||2)).toLocaleString('pt-BR')):''))||(p.price_html||''), categories:(p.categories||[]).map(c=>c.name||c.slug||c), image:(p.images&&p.images[0]&&(p.images[0].thumbnail||p.images[0].src))||'' }));\n      }catch(e){ d2.log('woo err',e); d2.state.err='Erro ao carregar catálogo: '+e.message; } finally{ d2.state.loading=false; } };\n    load();\n    d2.on('.retry','click',()=>{ load(); });\n    d2.on('.tab','click',(e,el)=>{ if(el.dataset.f) d2.state.filter=el.dataset.f; });\n  }\n}"}},"woo":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"woo"}}}},"config":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"config"}}}},"productCard":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"productCard"}}}}}}}}}},{"_id":"6a330f5cec12023d1caffd95","component":"data2-core-types@Component","system":"69651bdddc863af2ecd97d3d","params":{"extends":"data2-core-primitives@Block","component":"EntradaScreen","package":"adonis","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n  .scr{height:100%;display:flex;flex-direction:column;background:#0a0a0b;font-family:-apple-system,system-ui,sans-serif;color:#f4f4f5;box-sizing:border-box}\n  .top{position:sticky;top:0;z-index:5;background:rgba(10,10,11,.94);backdrop-filter:blur(10px);border-bottom:1px solid #2a2a31}\n  .barr{display:flex;align-items:center;justify-content:space-between;padding:16px 22px}\n  .brand{font-weight:700;letter-spacing:.5px;font-size:19px}.brand b{color:#F4C400}\n  .stat{font-size:14px;color:#8b8b94}.stat b{color:#f4f4f5;font-size:17px}\n  nav{display:flex;gap:8px;padding:0 16px 14px}\n  nav button{flex:1;max-width:200px;padding:13px;border:0;border-radius:12px;background:#141417;color:#8b8b94;font-size:15px;font-weight:600;cursor:pointer}\n  nav button.on{background:#F4C400;color:#000}\n  .body{flex:1;overflow:auto;max-width:780px;width:100%;margin:0 auto;padding:18px 16px 60px;box-sizing:border-box}\n  .pane{display:none}.pane.on{display:block}\n  `,\n  render(d2){\n    const st=d2.state; const v=st.view||'buscar';\n    return `<div class=\"scr\">\n      <div class=\"top\">\n        <div class=\"barr\"><div class=\"brand\">TEMPO <b>·</b> Entrada</div></div>\n        <nav><button class=\"${v==='buscar'?'on':''}\" data-v=\"buscar\">🔎 Buscar</button><button class=\"${v==='reservas'?'on':''}\" data-v=\"reservas\">📅 Reservas${st.reservas&&st.reservas.length?` <b style=\"opacity:.7\">${st.reservas.filter(r=>r&&r.status!=='Canceled').length}</b>`:''}</button></nav>\n      </div>\n      <div class=\"body\">\n        <div class=\"pane ${v==='buscar'?'on':''}\">${d2.render(d2.param('search'),{buscar:d2.params.buscar,cadastrar:d2.params.cadastrar,checkin:d2.params.checkin,card:d2.param('personCard'),reservas:st.reservas||[],tagmeWrite:d2.params.tagmeWrite},{key:'search',style:'min-height:200px'})}</div>\n        <div class=\"pane ${v==='reservas'?'on':''}\">${d2.render('adonis@ReservasScreen',{venueId:'69fcd30c55153376bd62ca81',tagmeRead:d2.params.tagmeRead,tagmeWrite:d2.params.tagmeWrite},{key:'reservas',style:'min-height:200px'})}</div>\n      </div></div>`;\n  },\n  mounted(d2){\n    const KEY={authorization:'sk_live_hhaK2dcQw0jAyYEfAcNpPgUTPqVVGwqC'};\n    const stats=async()=>{ try{ const r=await d2.rush(d2.params.lista).invoke({},{headers:KEY}); const d=r&&r.data!==undefined?r.data:r; d2.state.total=d&&d.total; d2.state.entrados=d&&d.entrados; }catch(e){} };\n    stats();\n    const VENUE='69fcd30c55153376bd62ca81';\n    const unwrap=r=>{ let d=r&&r.data!==undefined?r.data:r; if(d&&d.data!==undefined)d=d.data; return d; };\n    const loadReservas=async()=>{ try{ const now=new Date(); const path=`/Reservation/List/${VENUE}/${now.getFullYear()}/${now.getMonth()+1}/${now.getDate()}?isArray=true`; const r=await d2.rush(d2.params.tagmeRead).invoke({path},{headers:KEY}); const arr=unwrap(r); d2.state.reservas=Array.isArray(arr)?arr:[]; }catch(e){ d2.log('reservas err',e); } };\n    loadReservas();\n    d2.on('nav button','click',(e,el)=>{ d2.state.view=el.dataset.v; });\n  }\n}"}},"search":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"search"}}}},"list":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"list"}}}},"importPanel":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"importPanel"}}}},"buscar":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"buscar"}}}},"cadastrar":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"cadastrar"}}}},"checkin":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"checkin"}}}},"lista":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"lista"}}}},"exportar":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"exportar"}}}},"personCard":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"personCard"}}}},"entradaReservas":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"entradaReservas"}}}},"tagmeRead":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"tagmeRead"}}}},"tagmeWrite":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"tagmeWrite"}}}}}}}}}},{"_id":"6a34033e948195d3c9f69c72","component":"data2-core-types@Component","system":"69651bdddc863af2ecd97d3d","params":{"extends":"data2-core-primitives@Block","component":"ClientesScreen","package":"adonis","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n  .scr{height:100%;overflow:auto;background:#0a0a0a;font-family:'Inter',system-ui,sans-serif;color:#fff;box-sizing:border-box}\n  .head{display:flex;align-items:center;gap:14px;padding:28px 36px 18px;flex-wrap:wrap}\n  .head h2{font-family:'Anton',sans-serif;font-size:22px;letter-spacing:.08em;text-transform:uppercase;margin:0}\n  .head .sm{font-size:11px;color:#9a9a9a;letter-spacing:.1em;font-weight:600}\n  .bar{flex:1;height:1px;background:#2a2a2a;min-width:30px}\n  .tabs{display:flex;gap:8px}\n  .tab{background:transparent;border:1px solid #2a2a2a;color:#9a9a9a;padding:8px 16px;font-size:12px;letter-spacing:.12em;font-weight:600;cursor:pointer;text-transform:uppercase;border-radius:3px}\n  .tab.on{background:#F4C400;color:#000;border-color:#F4C400}\n  .search{background:#1c1c1c;border:1px solid #2a2a2a;color:#fff;padding:10px 13px;font-size:14px;outline:none;min-width:280px;border-radius:3px}\n  .search:focus{border-color:#F4C400}\n  .rows{display:flex;flex-direction:column;gap:8px;padding:18px 36px 50px}\n  .cnt{color:#9a9a9a;font-size:12px;margin:0 2px 4px}\n  .cli{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#141414;border:1px solid #2a2a2a;border-radius:10px;padding:12px 16px;cursor:pointer;transition:.12s}\n  .cli:hover{border-color:#F4C400;background:#191919}\n  .cn{font-weight:700;font-size:15px}\n  .cm{color:#9a9a9a;font-size:12px;margin-top:3px}\n  .open{color:#F4C400;font-size:12px;font-weight:700;white-space:nowrap}\n  .loading{padding:40px;color:#9a9a9a}\n  .detwrap{flex:1;min-height:0}\n  .cold{display:flex;flex-direction:column;height:100%}\n  .detbar{padding:14px 30px;border-bottom:1px solid #2a2a2a;flex-shrink:0;display:flex;align-items:center;gap:12px}\n  .backbtn{background:#1c1c1c;border:1px solid #2a2a2a;color:#fff;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer}\n  .backbtn:hover{border-color:#F4C400}\n  .dbn{color:#9a9a9a;font-size:13px}\n  `,\n  render(d2){\n    const esc=s=>String(s==null?'':s).replace(/[&<>]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;'}[c]));\n    const st=d2.state; const sel=st.sel;\n    if(sel){\n      return `<div class=\"scr cold\"><div class=\"detbar\"><button class=\"backbtn\">← Voltar</button><span class=\"dbn\">${esc(sel.Nome||'')}</span></div><div class=\"detwrap\">${d2.render('adonis@ClienteDetail',{record:sel},{key:'det'})}</div></div>`;\n    }\n    let list=st.clientes||[]; const tp=st.tp||'all'; const q=(st.q||'').trim().toLowerCase();\n    if(tp!=='all')list=list.filter(c=>(c.TpPessoa||'')===tp);\n    if(q)list=list.filter(c=>[c.Nome,c.CpfCnpj,String(c.NrPessoa)].join(' ').toLowerCase().includes(q));\n    let body;\n    if(st.loading)body=`<div class=\"loading\">Carregando clientes do Cloudfy…</div>`;\n    else if(st.err)body=`<div class=\"loading\" style=\"color:#ffce7a\">${esc(st.err)}</div>`;\n    else if(!list.length)body=`<div class=\"loading\">Nenhum cliente${q?` para \"${esc(st.q)}\"`:''}.</div>`;\n    else{ const shown=list.slice(0,150);\n      body=`<div class=\"cnt\">${list.length} cliente(s)${list.length>shown.length?` · mostrando ${shown.length}, refine a busca`:''}</div>`+shown.map(c=>`<div class=\"cli\" data-nr=\"${esc(c.NrPessoa==null?'':c.NrPessoa)}\" data-doc=\"${esc(c.CpfCnpj||'')}\"><div><div class=\"cn\">${esc(c.Nome||'—')}</div><div class=\"cm\">${c.TpPessoa==='J'?'PJ':'PF'}${c.CpfCnpj?' · '+esc(c.CpfCnpj):''}${c.NrPessoa?' · Nr '+c.NrPessoa:''}${c.DadosEndereco&&c.DadosEndereco.Cidade?' · '+esc(c.DadosEndereco.Cidade):''}</div></div><span class=\"open\">Abrir ›</span></div>`).join('');\n    }\n    return `<div class=\"scr\">\n      <div class=\"head\"><h2>Clientes <span class=\"sm\">CLOUDFY PDV</span></h2><div class=\"bar\"></div>\n        <div class=\"tabs\"><button class=\"tab ${tp==='all'?'on':''}\" data-c=\"all\">Todos</button><button class=\"tab ${tp==='F'?'on':''}\" data-c=\"F\">PF</button><button class=\"tab ${tp==='J'?'on':''}\" data-c=\"J\">PJ</button></div>\n        <input class=\"search q\" placeholder=\"Filtrar por nome, CPF/CNPJ ou Nr…\" value=\"${esc(st.q||'')}\"></div>\n      <div class=\"rows\">${body}</div></div>`;\n  },\n  mounted(d2){\n    const KEY={authorization:'sk_live_hhaK2dcQw0jAyYEfAcNpPgUTPqVVGwqC'};\n    const loadAll=async()=>{ d2.state.loading=true; d2.state.err=null;\n      try{ const r=await d2.rush(d2.params.proxyCliente||'proxy-cliente').invoke({},{headers:KEY}); let d=r&&r.data!==undefined?r.data:r; if(d&&d.data!==undefined)d=d.data; d2.state.clientes=(d&&d.DadosCliente)||[]; }\n      catch(e){ d2.log('clientes err',e); d2.state.err='Erro ao carregar clientes: '+(e&&e.message||e); } finally{ d2.state.loading=false; } };\n    loadAll();\n    d2.on('.q','input',(e,el)=>{ d2.state.q=el.value; });\n    d2.on('.tab','click',(e,el)=>{ d2.state.tp=el.dataset.c; });\n    d2.on('.cli','click',(e,el)=>{ const nr=el.dataset.nr, doc=el.dataset.doc; const all=d2.state.clientes||[]; const rec=all.find(c=>(nr&&String(c.NrPessoa)===nr)||(doc&&c.CpfCnpj===doc)); if(rec) d2.state.sel=rec; });\n    d2.on('.backbtn','click',()=>{ d2.state.sel=null; });\n  }\n}"}},"proxyCliente":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"proxyCliente"}}}},"proxyVendas":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"proxyVendas"}}}},"signup":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"signup"}}}},"clienteRow":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"clienteRow"}}}}}}}}}},{"_id":"6a34058bb4151ec9181b9988","component":"data2-core-types@Component","system":"69651bdddc863af2ecd97d3d","params":{"extends":"data2-core-primitives@Block","component":"MembrosScreen","package":"adonis","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n  .scr{height:100%;overflow:auto;background:#0a0a0a;font-family:'Inter',system-ui,sans-serif;color:#fff;box-sizing:border-box}\n  .cold{display:flex;flex-direction:column;height:100%}\n  .detbar{padding:14px 30px;border-bottom:1px solid #2a2a2a;flex-shrink:0;display:flex;align-items:center;gap:12px}\n  .backbtn{background:#1c1c1c;border:1px solid #2a2a2a;color:#fff;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer}\n  .backbtn:hover{border-color:#F4C400}.dbn{color:#9a9a9a;font-size:13px}\n  .detwrap{flex:1;min-height:0}\n  .head{display:flex;align-items:center;gap:14px;padding:28px 36px 18px;flex-wrap:wrap}\n  .head h2{font-family:'Anton',sans-serif;font-size:22px;letter-spacing:.08em;text-transform:uppercase;margin:0}\n  .bar{flex:1;height:1px;background:#2a2a2a;min-width:40px}\n  .tabs{display:flex;gap:8px}\n  .tab{background:transparent;border:1px solid #2a2a2a;color:#9a9a9a;padding:8px 16px;font-size:12px;letter-spacing:.12em;font-weight:600;cursor:pointer;text-transform:uppercase;border-radius:3px}\n  .tab.on{background:#F4C400;color:#000;border-color:#F4C400}\n  .search{background:#1c1c1c;border:1px solid #2a2a2a;color:#fff;padding:9px 13px;font-size:13px;outline:none;min-width:260px;border-radius:3px}\n  .search:focus{border-color:#F4C400}\n  .sortsel{background:#1c1c1c;border:1px solid #2a2a2a;color:#fff;padding:9px 10px;font-size:12px;outline:none;border-radius:3px;cursor:pointer}\n  .sortsel:focus{border-color:#F4C400}\n  .sortdirbtn{background:#1c1c1c;border:1px solid #2a2a2a;color:#F4C400;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer;border-radius:3px}\n  .sortdirbtn:hover{border-color:#F4C400}\n  .viewtoggle{display:flex;gap:4px;border:1px solid #2a2a2a;border-radius:3px;padding:2px}\n  .vbtn{background:transparent;border:none;color:#9a9a9a;padding:6px 10px;font-size:13px;cursor:pointer;border-radius:2px;line-height:1}\n  .vbtn.on{background:#F4C400;color:#000}\n  .list{padding:22px 36px 50px}\n  .listwrap{border:1px solid #2a2a2a;border-radius:12px;overflow:hidden}\n  .lrow{display:flex;align-items:center;gap:14px;padding:11px 16px;background:#141414;cursor:pointer;transition:.12s;border-bottom:1px solid #2a2a2a}\n  .lrow:last-child{border-bottom:none}\n  .lrow:hover{background:#1a1a1a}\n  .lph{width:54px;height:38px;border-radius:6px;flex-shrink:0;background-color:#0f0f0f;background-size:cover;background-position:center}\n  .lcode{font-family:'Anton',sans-serif;color:#F4C400;font-size:12px;letter-spacing:.1em;width:56px;flex-shrink:0}\n  .lname{font-weight:700;font-size:14px;width:200px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n  .lmeta{font-size:12px;color:#9a9a9a;width:140px;flex-shrink:0}\n  .lemail{font-size:12px;color:#7a7a7a;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n  .stats{display:flex;gap:14px;flex-wrap:wrap;padding:0 36px 6px}\n  .stat{background:#141414;border:1px solid #2a2a2a;border-left:3px solid #F4C400;padding:12px 20px;min-width:120px}\n  .stat .n{font-family:'Anton',sans-serif;font-size:26px;color:#F4C400}.stat .l{font-size:9px;letter-spacing:.18em;color:#9a9a9a;text-transform:uppercase;margin-top:4px}\n  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;padding:22px 36px 50px}\n  .mc{display:flex;flex-direction:column;background:#141414;border:1px solid #2a2a2a;border-radius:12px;overflow:hidden;cursor:pointer;transition:.12s}\n  .mc:hover{border-color:#F4C400}\n  .mph{height:150px;background-color:#0f0f0f;background-size:cover;background-position:center;border-bottom:1px solid #2a2a2a}\n  .mb{padding:14px 16px;flex:1}\n  .mcode{font-family:'Anton',sans-serif;color:#F4C400;font-size:12px;letter-spacing:.14em}\n  .mname{font-weight:700;font-size:16px;margin:3px 0 8px}\n  .mtags{display:flex;gap:6px;flex-wrap:wrap}\n  .mt{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;background:#1c1c1c;border:1px solid #2a2a2a;color:#9a9a9a}\n  .mt.y{background:#F4C400;color:#000;border-color:#F4C400}\n  .cfy{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;border:1px solid}\n  .cfy.on{background:rgba(61,220,132,.15);color:#3ddc84;border-color:rgba(61,220,132,.4)}\n  .cfy.off{background:rgba(255,107,107,.12);color:#ff8a8a;border-color:rgba(255,107,107,.35)}\n  .claim{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;border:1px solid}\n  .claim.on{background:rgba(61,220,132,.15);color:#3ddc84;border-color:rgba(61,220,132,.4)}\n  .claim.off{background:#1c1c1c;color:#7a7a7a;border-color:#2a2a2a}\n  .exp{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;border:1px solid}\n  .exp.off{background:#1c1c1c;color:#9a9a9a;border-color:#2a2a2a}\n  .exp.soon{background:rgba(244,196,0,.15);color:#F4C400;border-color:rgba(244,196,0,.4)}\n  .exp.on{background:rgba(255,90,90,.15);color:#ff5a5a;border-color:rgba(255,90,90,.4)}\n  .expbtn{background:#ff5a5a;border:1px solid #ff5a5a;color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;cursor:pointer;text-transform:uppercase}\n  .expbtn:hover{filter:brightness(1.1)}\n  .expconfirm{background:#ff5a5a;border:1px solid #ff5a5a;color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;cursor:pointer;margin-right:4px;text-transform:uppercase}\n  .expcancel{background:transparent;border:1px solid #2a2a2a;color:#9a9a9a;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;cursor:pointer;text-transform:uppercase}\n  .open{padding:0 16px 14px;color:#F4C400;font-size:12px;font-weight:700}\n  .loading{padding:40px;color:#9a9a9a}\n  `,\n  render(d2){\n    const esc=s=>String(s==null?'':s).replace(/[&<>]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;'}[c]));\n    const fmtCpf=v=>{ const d=String(v||'').replace(/\\D/g,''); if(d.length===11) return d.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/,'$1.$2.$3-$4'); if(d.length===14) return d.replace(/(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})/,'$1.$2.$3/$4-$5'); return d; };\n    const cloudfyTag=m=>`<span class=\"cfy ${m.cloudfy_synced?'on':'off'}\" title=\"${m.cloudfy_synced?'Encontrado no Cloudfy (NrPessoa '+esc(m.cloudfy_nrpessoa)+', via '+esc(m.cloudfy_check_method)+')':'Não encontrado no Cloudfy'}\">${m.cloudfy_synced?'☁ Cloudfy':'☁ Sem Cloudfy'}</span><span class=\"mt\" title=\"CPF cadastrado\">${m.cpf?'CPF '+fmtCpf(m.cpf):'Sem CPF'}</span><span class=\"mt\" title=\"Cod. Terceiro no Cloudfy\">Cod.Terc: ${esc(m.cloudfy_codterceiro||'—')}</span><span class=\"claim ${m.card_claimed?'on':'off'}\" title=\"${m.card_claimed?'Carteira digital resgatada'+(m.card_claimed_at?' em '+esc(String(m.card_claimed_at).slice(0,10).split('-').reverse().join('/')):''):'Ainda não resgatou a carteira digital'}\">${m.card_claimed?'✓ Resgatado':'○ Não resgatado'}</span>`;\n    const dayMs=86400000;\n    const expInfo=m=>{\n      if(!m.data_cadastro) return {label:'Sem data adesão', days:null, cls:'off', canExpire:false};\n      const start=new Date(m.data_cadastro);\n      const expDate=new Date(start.getTime()+365*dayMs);\n      const days=Math.ceil((expDate.getTime()-Date.now())/dayMs);\n      if(m.membership_expired) return {label:'Expirado (marcado)', days, cls:'off', canExpire:false};\n      if(days<0) return {label:'Expirado há '+(-days)+'d', days, cls:'on', canExpire:true};\n      if(days<=30) return {label:'Expira em '+days+'d', days, cls:'soon', canExpire:false};\n      return {label:'Expira em '+days+'d', days, cls:'off', canExpire:false};\n    };\n    const expTag=m=>{\n      const info=expInfo(m);\n      const dateStr=m.data_cadastro?esc(String(m.data_cadastro).slice(0,10).split('-').reverse().join('/')):'—';\n      const badge=`<span class=\"exp ${info.cls}\" title=\"Adesão: ${dateStr}\">⏳ ${esc(info.label)}</span>`;\n      if(!info.canExpire) return badge;\n      const code=m.member_code||'';\n      if(d2.state.expiring===code) return badge+`<span class=\"mt\">Expirando…</span>`;\n      if(d2.state.confirmExpire===code) return badge+`<button class=\"expconfirm\" data-code=\"${esc(code)}\">Confirmar</button><button class=\"expcancel\">Cancelar</button>`;\n      return badge+`<button class=\"expbtn\" data-code=\"${esc(code)}\" title=\"Marcar expirado + avisar no Cloudfy\">✕ Expirar</button>`;\n    };\n    const st=d2.state; const sel=st.sel;\n    if(sel) return `<div class=\"scr cold\"><div class=\"detbar\"><button class=\"backbtn\">← Voltar</button><span class=\"dbn\">${esc(sel.nome_completo||'')}</span></div><div class=\"detwrap\">${d2.render('adonis@MemberDetail',{record:sel},{key:'mdet'})}</div></div>`;\n    const members=st.members||[]; const f=st.filter||'all'; const q=(st.q||'').trim().toLowerCase();\n    let list=f==='all'?members:f==='EXPIRING'?members.filter(m=>{ if(!m.data_cadastro||m.membership_expired) return false; const days=Math.ceil((new Date(new Date(m.data_cadastro).getTime()+365*86400000).getTime()-Date.now())/86400000); return days<=30; }):members.filter(m=>String(m.tipo_cadastro||'').toUpperCase()===f);\n    if(q)list=list.filter(m=>[m.nome_completo,m.email,m.member_code,m.cidade].join(' ').toLowerCase().includes(q));\n    if(st.loading) return `<div class=\"scr\"><div class=\"loading\">Carregando membros…</div></div>`;\n    if(st.err) return `<div class=\"scr\"><div class=\"loading\" style=\"color:#ffce7a\">${esc(st.err)}</div></div>`;\n    const view=st.view||'grid';\n    const sortBy=st.sortBy||'nome'; const sortDir=st.sortDir||'asc'; const sdir=sortDir==='asc'?1:-1;\n    const sortKey=m=>{ if(sortBy==='codigo') return parseInt(m.member_code,10)||0; if(sortBy==='cidade') return (m.cidade||'').toLowerCase(); if(sortBy==='tier') return (m.tipo_cadastro||'').toUpperCase(); return (m.nome_completo||'').toLowerCase(); };\n    list=list.slice().sort((a,b)=>{ const ka=sortKey(a),kb=sortKey(b); if(ka<kb) return -1*sdir; if(ka>kb) return 1*sdir; return 0; });\n    const founders=members.filter(m=>String(m.tipo_cadastro||'').toUpperCase()==='FOUNDER').length;\n    const cards=list.map(m=>`<div class=\"mc\" data-code=\"${esc(m.member_code||'')}\"><div class=\"mph\" style=\"background-image:url('${esc(m.car_image||'')}')\"></div><div class=\"mb\"><div class=\"mcode\">#${esc(m.member_code||'—')}</div><div class=\"mname\">${esc(m.nome_completo||'—')}</div><div class=\"mtags\"><span class=\"mt y\">${esc(m.tipo_cadastro||'MEMBER')}</span>${cloudfyTag(m)}${expTag(m)}${m.cidade?`<span class=\"mt\">${esc(m.cidade)}${m.estado?'/'+esc(m.estado):''}</span>`:''}${m.tem_porsche?`<span class=\"mt\">${esc(m.modelo_porsche||'Porsche')}</span>`:''}</div></div><span class=\"open\">Abrir ›</span></div>`).join('');\n    const rows=list.map(m=>`<div class=\"lrow\" data-code=\"${esc(m.member_code||'')}\"><div class=\"lph\" style=\"background-image:url('${esc(m.car_image||'')}')\"></div><div class=\"lcode\">#${esc(m.member_code||'—')}</div><div class=\"lname\">${esc(m.nome_completo||'—')}</div><span class=\"mt y\">${esc(m.tipo_cadastro||'MEMBER')}</span>${cloudfyTag(m)}${expTag(m)}<div class=\"lmeta\">${m.cidade?esc(m.cidade)+(m.estado?'/'+esc(m.estado):''):''}</div><div class=\"lemail\">${esc(m.email||'')}</div><span class=\"open\">Abrir ›</span></div>`).join('');\n    return `<div class=\"scr\"><div class=\"head\"><h2>Membros</h2><div class=\"bar\"></div><div class=\"tabs\"><button class=\"tab ${f==='all'?'on':''}\" data-f=\"all\">Todos</button><button class=\"tab ${f==='FOUNDER'?'on':''}\" data-f=\"FOUNDER\">Founders</button><button class=\"tab ${f==='MEMBER'?'on':''}\" data-f=\"MEMBER\">Membros</button><button class=\"tab ${f==='EXPIRING'?'on':''}\" data-f=\"EXPIRING\">Expirando</button></div><input class=\"search q\" placeholder=\"Buscar nome, e-mail, código…\" value=\"${esc(st.q||'')}\"><select class=\"sortsel\"><option value=\"nome\" ${sortBy==='nome'?'selected':''}>Nome</option><option value=\"codigo\" ${sortBy==='codigo'?'selected':''}>Código</option><option value=\"tier\" ${sortBy==='tier'?'selected':''}>Tier</option><option value=\"cidade\" ${sortBy==='cidade'?'selected':''}>Cidade</option></select><button class=\"sortdirbtn\" title=\"Inverter ordem\">${sdir===1?'↑':'↓'}</button><div class=\"viewtoggle\"><button class=\"vbtn ${view==='grid'?'on':''}\" data-v=\"grid\" title=\"Grade\">▦</button><button class=\"vbtn ${view==='list'?'on':''}\" data-v=\"list\" title=\"Lista\">≡</button></div></div>\n      <div class=\"stats\"><div class=\"stat\"><div class=\"n\">${members.length}</div><div class=\"l\">Membros</div></div><div class=\"stat\"><div class=\"n\">${founders}</div><div class=\"l\">Founders</div></div></div>\n      ${view==='list'?`<div class=\"list\"><div class=\"listwrap\">${rows||'<div class=\"loading\">Nenhum membro neste filtro.</div>'}</div></div>`:`<div class=\"grid\">${cards||'<div class=\"loading\">Nenhum membro neste filtro.</div>'}</div>`}</div></div>`;\n  },\n  mounted(d2){\n    const KEY={authorization:'sk_live_hhaK2dcQw0jAyYEfAcNpPgUTPqVVGwqC'};\n    const load=async()=>{ d2.state.loading=true; d2.state.err=null;\n      try{ const r=await d2.rush(d2.params.listMembers||'list-members').invoke({limit:500},{headers:KEY}); const d=r&&r.data!==undefined?r.data:r; d2.state.members=(d&&d.members)||[]; }\n      catch(e){ d2.log('membros err',e); d2.state.err='Erro ao carregar membros: '+(e&&e.message||e); } finally{ d2.state.loading=false; } };\n    load();\n    d2.on('.tab','click',(e,el)=>{ d2.state.filter=el.dataset.f; });\n    let qT; d2.on('.q','input',(e,el)=>{ clearTimeout(qT); const v=el.value; qT=setTimeout(()=>{d2.state.q=v;},200); });\n    d2.on('.mc','click',(e,el)=>{ if(e.target.closest('.expbtn,.expconfirm,.expcancel')) return; const code=el.dataset.code; const rec=(d2.state.members||[]).find(m=>String(m.member_code)===String(code)); if(rec) d2.state.sel=rec; });\n    d2.on('.lrow','click',(e,el)=>{ if(e.target.closest('.expbtn,.expconfirm,.expcancel')) return; const code=el.dataset.code; const rec=(d2.state.members||[]).find(m=>String(m.member_code)===String(code)); if(rec) d2.state.sel=rec; });\n    d2.on('.vbtn','click',(e,el)=>{ d2.state.view=el.dataset.v; });\n    d2.on('.sortsel','change',(e,el)=>{ d2.state.sortBy=el.value; });\n    d2.on('.sortdirbtn','click',()=>{ d2.state.sortDir=(d2.state.sortDir||'asc')==='asc'?'desc':'asc'; });\n    d2.on('.expbtn','click',(e,el)=>{ e.stopPropagation(); d2.state.confirmExpire=el.dataset.code; });\n    d2.on('.expcancel','click',(e)=>{ e.stopPropagation(); d2.state.confirmExpire=null; });\n    d2.on('.expconfirm','click',async(e,el)=>{ e.stopPropagation(); const code=el.dataset.code; d2.state.confirmExpire=null; d2.state.expiring=code;\n      try{ const today=new Date().toISOString().slice(0,10); const r=await d2.rush('member-expire').invoke({member_code:code,today},{headers:KEY});\n        const a=r&&r.data!==undefined?r.data:r; if(!a||!a.success){ d2.log('expire failed',a); } }\n      catch(err){ d2.log('expire err',err); } finally{ d2.state.expiring=null; load(); } });\n    d2.on('.backbtn','click',()=>{ d2.state.sel=null; });\n  }\n}"}},"listMembers":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"listMembers"}}}},"memberCard":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"memberCard"}}}}}}}},"__d2PrevCode":{"code":"export default {\n  css: `\n  .scr{height:100%;overflow:auto;background:#0a0a0a;font-family:'Inter',system-ui,sans-serif;color:#fff;box-sizing:border-box}\n  .cold{display:flex;flex-direction:column;height:100%}\n  .detbar{padding:14px 30px;border-bottom:1px solid #2a2a2a;flex-shrink:0;display:flex;align-items:center;gap:12px}\n  .backbtn{background:#1c1c1c;border:1px solid #2a2a2a;color:#fff;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer}\n  .backbtn:hover{border-color:#F4C400}.dbn{color:#9a9a9a;font-size:13px}\n  .detwrap{flex:1;min-height:0}\n  .head{display:flex;align-items:center;gap:14px;padding:28px 36px 18px;flex-wrap:wrap}\n  .head h2{font-family:'Anton',sans-serif;font-size:22px;letter-spacing:.08em;text-transform:uppercase;margin:0}\n  .bar{flex:1;height:1px;background:#2a2a2a;min-width:40px}\n  .tabs{display:flex;gap:8px}\n  .tab{background:transparent;border:1px solid #2a2a2a;color:#9a9a9a;padding:8px 16px;font-size:12px;letter-spacing:.12em;font-weight:600;cursor:pointer;text-transform:uppercase;border-radius:3px}\n  .tab.on{background:#F4C400;color:#000;border-color:#F4C400}\n  .search{background:#1c1c1c;border:1px solid #2a2a2a;color:#fff;padding:9px 13px;font-size:13px;outline:none;min-width:260px;border-radius:3px}\n  .search:focus{border-color:#F4C400}\n  .sortsel{background:#1c1c1c;border:1px solid #2a2a2a;color:#fff;padding:9px 10px;font-size:12px;outline:none;border-radius:3px;cursor:pointer}\n  .sortsel:focus{border-color:#F4C400}\n  .sortdirbtn{background:#1c1c1c;border:1px solid #2a2a2a;color:#F4C400;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer;border-radius:3px}\n  .sortdirbtn:hover{border-color:#F4C400}\n  .viewtoggle{display:flex;gap:4px;border:1px solid #2a2a2a;border-radius:3px;padding:2px}\n  .vbtn{background:transparent;border:none;color:#9a9a9a;padding:6px 10px;font-size:13px;cursor:pointer;border-radius:2px;line-height:1}\n  .vbtn.on{background:#F4C400;color:#000}\n  .list{padding:22px 36px 50px}\n  .listwrap{border:1px solid #2a2a2a;border-radius:12px;overflow:hidden}\n  .lrow{display:flex;align-items:center;gap:14px;padding:11px 16px;background:#141414;cursor:pointer;transition:.12s;border-bottom:1px solid #2a2a2a}\n  .lrow:last-child{border-bottom:none}\n  .lrow:hover{background:#1a1a1a}\n  .lph{width:54px;height:38px;border-radius:6px;flex-shrink:0;background-color:#0f0f0f;background-size:cover;background-position:center}\n  .lcode{font-family:'Anton',sans-serif;color:#F4C400;font-size:12px;letter-spacing:.1em;width:56px;flex-shrink:0}\n  .lname{font-weight:700;font-size:14px;width:200px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n  .lmeta{font-size:12px;color:#9a9a9a;width:140px;flex-shrink:0}\n  .lemail{font-size:12px;color:#7a7a7a;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n  .stats{display:flex;gap:14px;flex-wrap:wrap;padding:0 36px 6px}\n  .stat{background:#141414;border:1px solid #2a2a2a;border-left:3px solid #F4C400;padding:12px 20px;min-width:120px}\n  .stat .n{font-family:'Anton',sans-serif;font-size:26px;color:#F4C400}.stat .l{font-size:9px;letter-spacing:.18em;color:#9a9a9a;text-transform:uppercase;margin-top:4px}\n  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;padding:22px 36px 50px}\n  .mc{display:flex;flex-direction:column;background:#141414;border:1px solid #2a2a2a;border-radius:12px;overflow:hidden;cursor:pointer;transition:.12s}\n  .mc:hover{border-color:#F4C400}\n  .mph{height:150px;background-color:#0f0f0f;background-size:cover;background-position:center;border-bottom:1px solid #2a2a2a}\n  .mb{padding:14px 16px;flex:1}\n  .mcode{font-family:'Anton',sans-serif;color:#F4C400;font-size:12px;letter-spacing:.14em}\n  .mname{font-weight:700;font-size:16px;margin:3px 0 8px}\n  .mtags{display:flex;gap:6px;flex-wrap:wrap}\n  .mt{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;background:#1c1c1c;border:1px solid #2a2a2a;color:#9a9a9a}\n  .mt.y{background:#F4C400;color:#000;border-color:#F4C400}\n  .cfy{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;border:1px solid}\n  .cfy.on{background:rgba(61,220,132,.15);color:#3ddc84;border-color:rgba(61,220,132,.4)}\n  .cfy.off{background:rgba(255,107,107,.12);color:#ff8a8a;border-color:rgba(255,107,107,.35)}\n  .claim{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;border:1px solid}\n  .claim.on{background:rgba(61,220,132,.15);color:#3ddc84;border-color:rgba(61,220,132,.4)}\n  .claim.off{background:#1c1c1c;color:#7a7a7a;border-color:#2a2a2a}\n  .exp{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;border:1px solid}\n  .exp.off{background:#1c1c1c;color:#9a9a9a;border-color:#2a2a2a}\n  .exp.soon{background:rgba(244,196,0,.15);color:#F4C400;border-color:rgba(244,196,0,.4)}\n  .exp.on{background:rgba(255,90,90,.15);color:#ff5a5a;border-color:rgba(255,90,90,.4)}\n  .expbtn{background:#ff5a5a;border:1px solid #ff5a5a;color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;cursor:pointer;text-transform:uppercase}\n  .expbtn:hover{filter:brightness(1.1)}\n  .expconfirm{background:#ff5a5a;border:1px solid #ff5a5a;color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;cursor:pointer;margin-right:4px;text-transform:uppercase}\n  .expcancel{background:transparent;border:1px solid #2a2a2a;color:#9a9a9a;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;cursor:pointer;text-transform:uppercase}\n  .open{padding:0 16px 14px;color:#F4C400;font-size:12px;font-weight:700}\n  .loading{padding:40px;color:#9a9a9a}\n  `,\n  render(d2){\n    const esc=s=>String(s==null?'':s).replace(/[&<>]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;'}[c]));\n    const fmtCpf=v=>{ const d=String(v||'').replace(/\\D/g,''); if(d.length===11) return d.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/,'$1.$2.$3-$4'); if(d.length===14) return d.replace(/(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})/,'$1.$2.$3/$4-$5'); return d; };\n    const cloudfyTag=m=>`<span class=\"cfy ${m.cloudfy_synced?'on':'off'}\" title=\"${m.cloudfy_synced?'Encontrado no Cloudfy (NrPessoa '+esc(m.cloudfy_nrpessoa)+', via '+esc(m.cloudfy_check_method)+')':'Não encontrado no Cloudfy'}\">${m.cloudfy_synced?'☁ Cloudfy':'☁ Sem Cloudfy'}</span><span class=\"mt\" title=\"CPF cadastrado\">${m.cpf?'CPF '+fmtCpf(m.cpf):'Sem CPF'}</span><span class=\"mt\" title=\"Cod. Terceiro no Cloudfy\">Cod.Terc: ${esc(m.cloudfy_codterceiro||'—')}</span><span class=\"claim ${m.card_claimed?'on':'off'}\" title=\"${m.card_claimed?'Carteira digital resgatada'+(m.card_claimed_at?' em '+esc(String(m.card_claimed_at).slice(0,10).split('-').reverse().join('/')):''):'Ainda não resgatou a carteira digital'}\">${m.card_claimed?'✓ Resgatado':'○ Não resgatado'}</span>`;\n    const dayMs=86400000;\n    const expInfo=m=>{\n      if(!m.data_cadastro) return {label:'Sem data adesão', days:null, cls:'off', canExpire:false};\n      const start=new Date(m.data_cadastro);\n      const expDate=new Date(start.getTime()+365*dayMs);\n      const days=Math.ceil((expDate.getTime()-Date.now())/dayMs);\n      if(m.membership_expired) return {label:'Expirado (marcado)', days, cls:'off', canExpire:false};\n      if(days<0) return {label:'Expirado há '+(-days)+'d', days, cls:'on', canExpire:true};\n      if(days<=30) return {label:'Expira em '+days+'d', days, cls:'soon', canExpire:false};\n      return {label:'Expira em '+days+'d', days, cls:'off', canExpire:false};\n    };\n    const expTag=m=>{\n      const info=expInfo(m);\n      const dateStr=m.data_cadastro?esc(String(m.data_cadastro).slice(0,10).split('-').reverse().join('/')):'—';\n      const badge=`<span class=\"exp ${info.cls}\" title=\"Adesão: ${dateStr}\">⏳ ${esc(info.label)}</span>`;\n      if(!info.canExpire) return badge;\n      const code=m.member_code||'';\n      if(d2.state.expiring===code) return badge+`<span class=\"mt\">Expirando…</span>`;\n      if(d2.state.confirmExpire===code) return badge+`<button class=\"expconfirm\" data-code=\"${esc(code)}\">Confirmar</button><button class=\"expcancel\">Cancelar</button>`;\n      return badge+`<button class=\"expbtn\" data-code=\"${esc(code)}\" title=\"Marcar expirado + avisar no Cloudfy\">✕ Expirar</button>`;\n    };\n    const st=d2.state; const sel=st.sel;\n    if(sel) return `<div class=\"scr cold\"><div class=\"detbar\"><button class=\"backbtn\">← Voltar</button><span class=\"dbn\">${esc(sel.nome_completo||'')}</span></div><div class=\"detwrap\">${d2.render('adonis@MemberDetail',{record:sel},{key:'mdet'})}</div></div>`;\n    const members=st.members||[]; const f=st.filter||'all'; const q=(st.q||'').trim().toLowerCase();\n    let list=f==='all'?members:f==='EXPIRING'?members.filter(m=>{ if(!m.data_cadastro||m.membership_expired) return false; const days=Math.ceil((new Date(new Date(m.data_cadastro).getTime()+365*86400000).getTime()-Date.now())/86400000); return days<=30; }):members.filter(m=>String(m.tipo_cadastro||'').toUpperCase()===f);\n    if(q)list=list.filter(m=>[m.nome_completo,m.email,m.member_code,m.cidade].join(' ').toLowerCase().includes(q));\n    if(st.loading) return `<div class=\"scr\"><div class=\"loading\">Carregando membros…</div></div>`;\n    if(st.err) return `<div class=\"scr\"><div class=\"loading\" style=\"color:#ffce7a\">${esc(st.err)}</div></div>`;\n    const view=st.view||'grid';\n    const sortBy=st.sortBy||'nome'; const sortDir=st.sortDir||'asc'; const sdir=sortDir==='asc'?1:-1;\n    const sortKey=m=>{ if(sortBy==='codigo') return parseInt(m.member_code,10)||0; if(sortBy==='cidade') return (m.cidade||'').toLowerCase(); if(sortBy==='tier') return (m.tipo_cadastro||'').toUpperCase(); return (m.nome_completo||'').toLowerCase(); };\n    list=list.slice().sort((a,b)=>{ const ka=sortKey(a),kb=sortKey(b); if(ka<kb) return -1*sdir; if(ka>kb) return 1*sdir; return 0; });\n    const founders=members.filter(m=>String(m.tipo_cadastro||'').toUpperCase()==='FOUNDER').length;\n    const cards=list.map(m=>`<div class=\"mc\" data-code=\"${esc(m.member_code||'')}\"><div class=\"mph\" style=\"background-image:url('${esc(m.car_image||'')}')\"></div><div class=\"mb\"><div class=\"mcode\">#${esc(m.member_code||'—')}</div><div class=\"mname\">${esc(m.nome_completo||'—')}</div><div class=\"mtags\"><span class=\"mt y\">${esc(m.tipo_cadastro||'MEMBER')}</span>${cloudfyTag(m)}${expTag(m)}${m.cidade?`<span class=\"mt\">${esc(m.cidade)}${m.estado?'/'+esc(m.estado):''}</span>`:''}${m.tem_porsche?`<span class=\"mt\">${esc(m.modelo_porsche||'Porsche')}</span>`:''}</div></div><span class=\"open\">Abrir ›</span></div>`).join('');\n    const rows=list.map(m=>`<div class=\"lrow\" data-code=\"${esc(m.member_code||'')}\"><div class=\"lph\" style=\"background-image:url('${esc(m.car_image||'')}')\"></div><div class=\"lcode\">#${esc(m.member_code||'—')}</div><div class=\"lname\">${esc(m.nome_completo||'—')}</div><span class=\"mt y\">${esc(m.tipo_cadastro||'MEMBER')}</span>${cloudfyTag(m)}${expTag(m)}<div class=\"lmeta\">${m.cidade?esc(m.cidade)+(m.estado?'/'+esc(m.estado):''):''}</div><div class=\"lemail\">${esc(m.email||'')}</div><span class=\"open\">Abrir ›</span></div>`).join('');\n    return `<div class=\"scr\"><div class=\"head\"><h2>Membros</h2><div class=\"bar\"></div><div class=\"tabs\"><button class=\"tab ${f==='all'?'on':''}\" data-f=\"all\">Todos</button><button class=\"tab ${f==='FOUNDER'?'on':''}\" data-f=\"FOUNDER\">Founders</button><button class=\"tab ${f==='MEMBER'?'on':''}\" data-f=\"MEMBER\">Membros</button><button class=\"tab ${f==='EXPIRING'?'on':''}\" data-f=\"EXPIRING\">Expirando</button></div><input class=\"search q\" placeholder=\"Buscar nome, e-mail, código…\" value=\"${esc(st.q||'')}\"><select class=\"sortsel\"><option value=\"nome\" ${sortBy==='nome'?'selected':''}>Nome</option><option value=\"codigo\" ${sortBy==='codigo'?'selected':''}>Código</option><option value=\"tier\" ${sortBy==='tier'?'selected':''}>Tier</option><option value=\"cidade\" ${sortBy==='cidade'?'selected':''}>Cidade</option></select><button class=\"sortdirbtn\" title=\"Inverter ordem\">${sdir===1?'↑':'↓'}</button><div class=\"viewtoggle\"><button class=\"vbtn ${view==='grid'?'on':''}\" data-v=\"grid\" title=\"Grade\">▦</button><button class=\"vbtn ${view==='list'?'on':''}\" data-v=\"list\" title=\"Lista\">≡</button></div></div>\n      <div class=\"stats\"><div class=\"stat\"><div class=\"n\">${members.length}</div><div class=\"l\">Membros</div></div><div class=\"stat\"><div class=\"n\">${founders}</div><div class=\"l\">Founders</div></div></div>\n      ${view==='list'?`<div class=\"list\"><div class=\"listwrap\">${rows||'<div class=\"loading\">Nenhum membro neste filtro.</div>'}</div></div>`:`<div class=\"grid\">${cards||'<div class=\"loading\">Nenhum membro neste filtro.</div>'}</div>`}</div></div>`;\n  },\n  mounted(d2){\n    const KEY={authorization:'sk_live_hhaK2dcQw0jAyYEfAcNpPgUTPqVVGwqC'};\n    const load=async()=>{ d2.state.loading=true; d2.state.err=null;\n      try{ const r=await d2.rush(d2.params.listMembers||'list-members').invoke({limit:500},{headers:KEY}); const d=r&&r.data!==undefined?r.data:r; d2.state.members=(d&&d.members)||[]; }\n      catch(e){ d2.log('membros err',e); d2.state.err='Erro ao carregar membros: '+(e&&e.message||e); } finally{ d2.state.loading=false; } };\n    load();\n    d2.on('.tab','click',(e,el)=>{ d2.state.filter=el.dataset.f; });\n    let qT; d2.on('.q','input',(e,el)=>{ clearTimeout(qT); const v=el.value; qT=setTimeout(()=>{d2.state.q=v;},200); });\n    d2.on('.mc','click',(e,el)=>{ const code=el.dataset.code; const rec=(d2.state.members||[]).find(m=>String(m.member_code)===String(code)); if(rec) d2.state.sel=rec; });\n    d2.on('.lrow','click',(e,el)=>{ const code=el.dataset.code; const rec=(d2.state.members||[]).find(m=>String(m.member_code)===String(code)); if(rec) d2.state.sel=rec; });\n    d2.on('.vbtn','click',(e,el)=>{ d2.state.view=el.dataset.v; });\n    d2.on('.sortsel','change',(e,el)=>{ d2.state.sortBy=el.value; });\n    d2.on('.sortdirbtn','click',()=>{ d2.state.sortDir=(d2.state.sortDir||'asc')==='asc'?'desc':'asc'; });\n    d2.on('.expbtn','click',(e,el)=>{ e.stopPropagation(); d2.state.confirmExpire=el.dataset.code; });\n    d2.on('.expcancel','click',(e)=>{ e.stopPropagation(); d2.state.confirmExpire=null; });\n    d2.on('.expconfirm','click',async(e,el)=>{ e.stopPropagation(); const code=el.dataset.code; d2.state.confirmExpire=null; d2.state.expiring=code;\n      try{ const today=new Date().toISOString().slice(0,10); const r=await d2.rush('member-expire').invoke({member_code:code,today},{headers:KEY});\n        const a=r&&r.data!==undefined?r.data:r; if(!a||!a.success){ d2.log('expire failed',a); } }\n      catch(err){ d2.log('expire err',err); } finally{ d2.state.expiring=null; load(); } });\n    d2.on('.backbtn','click',()=>{ d2.state.sel=null; });\n  }\n}","at":"2026-08-13T18:16:47.959Z"}}},{"_id":"5ed9bed7b9e0891ce913e884","component":"data2-core-types@Component","params":{"package":"data2-core","component":"DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}},{"_id":"5f472ae463c680de4ff296e9","component":"data2-core-types@Component","params":{"package":"data2-core","component":"Data2TableDataSource","extends":"data2-core@DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}}]}},{"reference":"ExternalComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"_id":"5f060d9b1ca96def42f3c40a","displayName":"Builder AuthStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"credentials":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"verifier":{"component":"data2-core-types@DataSetReference","params":{"reference":"UsersDataSet"}},"sessionShared":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},"email":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"nR6Q9d7qdaPtZhJ28Q8Dy"},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"yPCJBTKo8q1Mw0B_3Kpwl"},"component":"data2-core-types@ArtboardReference"}}},"session":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"name"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"sessionMetadata":{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},{"params":{"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"active"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.status"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is active user"}]},"component":"data2-core-logical-operators@And","displayName":"is active and has _id"}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $user"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-primitives@String","params":{"content":"@data2.app"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.email"}}}}},"component":"data2-core-functions@Includes","displayName":"isData2User"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}},"component":"data2-core-flow@Step"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.d2_app"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"management"}}]},"component":"data2-core-functions@Includes","displayName":"isData2App Exception"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}},"component":"data2-core-flow@Step"},{"params":{"resultName":{"component":"data2-core-primitives@String","params":{"content":"has_access"}},"action":{"params":{"compare":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}}}]},"component":"data2-core-logical-operators@Or"},"else":{"params":{"actions":[{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $metadata.system"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":"filter","args":[{"_id":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records.length"}}}}},"component":"data2-core-logical-operators@Not","displayName":"systems not found"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check system found"},{"params":{"actions":[{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"organization":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"cursor.current.organization._id"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"}]},"component":"data2-core-flow@Parallel"}]},"component":"data2-core-flow@Series","displayName":"common setup"},{"params":{"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"compare":{"params":{"components":{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"mapper":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"system"}}],"body":{"params":{"expression":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.visibility"}}}},"defaultCase":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"public"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"billing-owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}},{"component":"data2-core-primitives@String","params":{"content":"member"}}]},"component":"data2-core-functions@Includes","displayName":"has role with access"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"collaborator"}}},"component":"data2-core-comparison-operators@Equal","displayName":"is collaborator"}]},"component":"data2-core-logical-operators@And","displayName":"is org member and collaborator"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is collaborator"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is collaborator and has system access"}]},"component":"data2-core-logical-operators@Or"}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"private"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}}]},"component":"data2-core-functions@Includes","displayName":"is owner/admin"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is owner/admin"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is member and has system access"}]},"component":"data2-core-logical-operators@Or","displayName":"is owner/admin or has system access"}}}]},"component":"data2-core-flow@Switch"}}}},"component":"data2-core-functions@ArrayMap"}},"component":"data2-core-logical-operators@And","displayName":"has org member for all systems in request"}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-flow@If"}},"component":"data2-core-flow@Step"},{"params":{"then":{"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"else":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"},"compare":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"has_access"}}}}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"sessionExpiresIn":{"component":"data2-core-primitives@Number","params":{"content":604800}},"sessionRenewal":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"identityProviders":[{"provider":{"component":"data2-core-primitives@String","params":{"content":"GOOGLE"}},"clientId":{"component":"data2-core-primitives@String","params":{"content":"55470861603-22pvfc1t49lp8cjnbfk71s5ct9hp1q1v.apps.googleusercontent.com"}}}]},"reference":"Data2BuilderAuthentication","updatedAt":"2026-08-06T19:31:23.557Z"},{"_id":"5f060ee51ca96def42f3fbd1","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"UsersTableDataSource"}},"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}}},"reference":"UsersDataSet","updatedAt":"2026-03-04T21:16:40.291Z"},{"_id":"68f938cf5fb002e33752a43d","displayName":"InternalApplicationsAuthenticationStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}}},"verifier":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"InternalApplicationsVerifierDataSet"}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"secret"}},"credentials":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}],"session":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}]},"reference":"InternalApplicationsAuthenticationStrategy","updatedAt":"2025-10-22T20:08:54.442Z","createdAt":"2025-10-22T20:04:31.198Z"},{"component":"data2-core@DataSet","reference":"SessionsDataSet","params":{"requiresConfirmation":false,"pk":"key","datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"data2sessionsdatasource"}}}},{"reference":"UsersTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@ServerSessionsDataSource","reference":"data2sessionsdatasource","params":{}},{"_id":"5f1600b70528b92601890f75","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ServiceComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ServiceComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:20.208Z","createdAt":"2020-07-20T20:38:15.436Z"},{"_id":"5f1602190528b92601890f7d","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":40000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentInstancesTableDataSource"}},"sort":{"_id":1},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:07.089Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"5f16017f0528b92601890f7a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"FileComponentInstancesDataSet","updatedAt":"2023-08-03T16:08:18.193Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"5f1601990528b92601890f7b","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ApplicationsTableDataSource"}},"pk":"_id","autoEdit":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"params":{"column":"_id"},"component":"data2-core-types@DataSetColumnReference"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"ApplicationsDataSet","updatedAt":"2022-12-13T21:51:13.995Z","createdAt":"2020-07-20T20:42:01.657Z"},{"_id":"5f16172a0528b92601890f85","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":10000}}},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"DataComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"DataComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:12.831Z","createdAt":"2020-07-20T22:14:02.097Z"},{"_id":"60ddc1bbda3861ca65407c5a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"pagination":{"size":1},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"}},"reference":"OneFileComponentInstancesDataSet","updatedAt":"2022-02-09T19:44:38.036Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"63ee3d38b8c9838c62fb05fb","displayName":"DriveFileComponentInstancesDataSet","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core@Drive"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"DriveFileComponentInstancesDataSet","updatedAt":"2025-12-04T21:58:32.367Z","createdAt":"2023-02-16T14:27:07.797Z"},{"reference":"ServiceComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a073e735f4349e65e3fcb59","component":"data2-core-connect@HttpClient","reference":"tempoByPorscheWoo","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"6a43fc07c931392b71df59ec","component":"data2-rush@HTTPListener","reference":"tagme-write","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"6a43f53ab19f54f0960639c6","component":"data2-rush@HTTPListener","reference":"tagme-read","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"6a330cdc9f6e1c72479eaef7","component":"data2-rush@HTTPListener","reference":"entrada-export","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"6a330b37293ce144a47de264","component":"data2-rush@HTTPListener","reference":"entrada-lista","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"6a330bb0926d2ad822637c97","component":"data2-rush@HTTPListener","reference":"entrada-checkin","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"6a330c8dfd2b35b0fa7b1845","component":"data2-rush@HTTPListener","reference":"entrada-cadastrar-um","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"6a330b6cec12023d1caff264","component":"data2-rush@HTTPListener","reference":"entrada-buscar","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"6973990ebca9cdece9c61862","component":"data2-rush@HTTPListener","reference":"signup","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"69ff2cd2c2d249fe94eb0099","component":"data2-rush@HTTPListener","reference":"proxy-vendas","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"69ff2cd0a958e5a344fc9061","component":"data2-rush@HTTPListener","reference":"proxy-cliente","system":"69651bdddc863af2ecd97d3d","params":{}},{"_id":"69ef872682956177fcb2d6fb","component":"data2-rush@HTTPListener","reference":"list-members","system":"69651bdddc863af2ecd97d3d","params":{}}]}},{"reference":"ComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a33e1349f6e1c72479ff8fa","component":"data2-core-primitives@Router","system":"69651bdddc863af2ecd97d3d","displayName":"PanelRouter","params":{"routerType":{"component":"data2-core-primitives@String","params":{"content":"browser"}},"routes":[{"component":"data2-core-primitives@Route","params":{"path":"","name":"Catálogo · TEMPO","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"jng1kFKWsbavCsZALaxsx"}}}},{"component":"data2-core-primitives@Route","params":{"path":"/catalogo","name":"Catálogo · TEMPO","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"jng1kFKWsbavCsZALaxsx"}}}},{"component":"data2-core-primitives@Route","params":{"path":"/membros","name":"Membros · TEMPO","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"L-fAM7wsWVRgNaLMWnYhV"}}}},{"component":"data2-core-primitives@Route","params":{"path":"/clientes","name":"Clientes · TEMPO","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"VcGqUToSKy33-Zzkl90Vp"}}}},{"component":"data2-core-primitives@Route","params":{"path":"/entrada","name":"Entrada · TEMPO","content":{"component":"data2-core-types@ArtboardReference","params":{"reference":"Bk6v0mfS418PXplkmmU25"}}}}],"notFound":{"component":"data2-core-types@ArtboardReference","params":{"reference":"jng1kFKWsbavCsZALaxsx"}}},"reference":"PanelRouter"},{"_id":"6a330e1c01215fafaca8b9f3","component":"data2-core-primitives@Artboard","system":"69651bdddc863af2ecd97d3d","displayName":"CatalogoScreen","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"CatalogoScreen"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}}},"reference":"jng1kFKWsbavCsZALaxsx"},{"_id":"6a330e22293ce144a47deaf3","component":"data2-core-primitives@Artboard","system":"69651bdddc863af2ecd97d3d","displayName":"EntradaScreen","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"EntradaScreen"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"position":{"component":"data2-core-types@Position","params":{"x":-740,"y":925,"exactX":-740.02,"exactY":925.47}}},"reference":"Bk6v0mfS418PXplkmmU25"},{"_id":"6a330e20293ce144a47deae7","component":"data2-core-primitives@Artboard","system":"69651bdddc863af2ecd97d3d","displayName":"ClientesScreen","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"ClientesScreen"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"position":{"component":"data2-core-types@Position","params":{"x":-1723,"y":-477,"exactX":-1723.08,"exactY":-477.12}}},"reference":"VcGqUToSKy33-Zzkl90Vp"},{"_id":"6a330e1e23b312eaa4d1d0e6","component":"data2-core-primitives@Artboard","system":"69651bdddc863af2ecd97d3d","displayName":"MembrosScreen","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"MembrosScreen"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}}},"reference":"L-fAM7wsWVRgNaLMWnYhV"},{"_id":"1c8b50d11597e4d4bec2c029","parent":"6a330e1c01215fafaca8b9f3","component":"adonis@PanelSidebar","system":"69651bdddc863af2ecd97d3d","displayName":"Sidebar","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":280,"height":900}}},"currentPath":"catalogo","accent":{"component":"data2-core-types@Color","params":{"rgba":"#F4C400"}}},"index":0,"reference":"KgAWHeCR_HWlmJClh6juP"},{"_id":"6e7033d7a2e1bf9b22f9522a","parent":"6a330e1c01215fafaca8b9f3","component":"adonis@CatalogoScreen","system":"69651bdddc863af2ecd97d3d","displayName":"Screen","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":280,"y":0,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1160,"height":900}}},"woo":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"tempoByPorscheWoo"}},"config":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"produto-configDataSet"}},"productCard":"adonis@ProductCard"},"index":1,"reference":"GtlxsYe5KVqlGa7UVaACM"},{"_id":"2c9f54883240a500641354a1","parent":"6a330e22293ce144a47deaf3","component":"adonis@PanelSidebar","system":"69651bdddc863af2ecd97d3d","displayName":"Sidebar","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":280,"height":900}}},"currentPath":"entrada","accent":{"component":"data2-core-types@Color","params":{"rgba":"#d5001c"}}},"index":0,"reference":"RdoksCaRtV0QaP0m9gXts"},{"_id":"0843cf1378177ed392ff2ac2","parent":"6a330e22293ce144a47deaf3","component":"adonis@EntradaScreen","system":"69651bdddc863af2ecd97d3d","displayName":"Screen","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":280,"y":0,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1160,"height":900}}},"search":"adonis@EntradaSearch","list":"adonis@EntradaList","importPanel":"adonis@ImportPanel","personCard":"adonis@PersonCard","buscar":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"entrada-buscar"}},"cadastrar":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"entrada-cadastrar-um"}},"checkin":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"entrada-checkin"}},"lista":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"entrada-lista"}},"exportar":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"entrada-export"}},"entradaReservas":"adonis@EntradaReservas","tagmeRead":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"tagme-read"}},"tagmeWrite":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"tagme-write"}}},"index":1,"reference":"jWGhVxaq_nJ2g14hXA4jx"},{"_id":"521f1651c77c3e4d5aaa9fbb","parent":"6a330e20293ce144a47deae7","component":"adonis@PanelSidebar","system":"69651bdddc863af2ecd97d3d","displayName":"Sidebar","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":280,"height":900}}},"currentPath":"clientes","accent":{"component":"data2-core-types@Color","params":{"rgba":"#F4C400"}}},"index":0,"reference":"B1s-WgLeMXlnyt1gj_kVc"},{"_id":"3289192a7bdb2c9da93891b6","parent":"6a330e20293ce144a47deae7","component":"adonis@ClientesScreen","system":"69651bdddc863af2ecd97d3d","displayName":"Screen","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":280,"y":0,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1160,"height":900}}},"proxyCliente":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"proxy-cliente"}},"proxyVendas":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"proxy-vendas"}},"signup":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"signup"}},"clienteRow":"adonis@ClienteRow"},"index":1,"reference":"feTdQj5Kc4fAZRZtw6Ari"},{"_id":"15f6bbf1ad97e491e80bdc0a","parent":"6a330e1e23b312eaa4d1d0e6","component":"adonis@PanelSidebar","system":"69651bdddc863af2ecd97d3d","displayName":"Sidebar","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":280,"height":900}}},"currentPath":"membros","accent":{"component":"data2-core-types@Color","params":{"rgba":"#F4C400"}}},"index":0,"reference":"oPn27ye_KxFPVN7lrkGDX"},{"_id":"c6642a1c6fdf6a02e4377d13","parent":"6a330e1e23b312eaa4d1d0e6","component":"adonis@MembrosScreen","system":"69651bdddc863af2ecd97d3d","displayName":"Screen","params":{"super":{"position":{"component":"data2-core-types@Position","params":{"x":280,"y":0,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1160,"height":900}}},"listMembers":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"list-members"}},"memberCard":"adonis@MemberCard"},"index":1,"reference":"Qki7YzQKjBugwN6a-3uxE"}]}},{"_id":"5fc4faeec8da12be8bf3d08a","component":"data2-core@Data2TableDataSource","system":"5e3b796d6228227ca637d0f4","params":{"paginate":{"default":1000},"super":{},"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"fileId"}},"title":"File ID","component":"data2-core-primitives@ObjectId"},"break":true}],"hooks":{"before":{"all":[{"hook":"softDelete"}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"timestamp","options":{"fields":["createdAt","updatedAt"]}}],"update":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}],"patch":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}]},"after":{"all":[{"hook":"fileUrl","options":{"downloadField":"params.fileUrl","uploadField":"params.uploadFileUrl","enhanceSchema":false}}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"update":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"patch":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"remove":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}]}},"multi":["create"],"useEstimatedDocumentCount":true},"reference":"FileComponentInstancesTableDataSource","updatedAt":"2022-12-19T20:42:51.837Z","createdAt":"2020-11-30T13:59:52.294Z"},{"reference":"ApplicationsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a33e13b926d2ad82264a729","displayName":"Painel TEMPO (gen-2, aposentado)","reference":"cviXS9xtyPioCYWNH8nhO","params":{"domain":{"component":"data2-core-primitives@String","params":{"content":"painel-old"}},"entryPoint":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Router","reference":"PanelRouter"}}},"system":"69651bdddc863af2ecd97d3d","component":"data2-core-primitives@Application"}]}},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a330e1a926d2ad822638430","component":"data2-core@DataSet","system":"69651bdddc863af2ecd97d3d","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"produto-config"}}},"reference":"produto-configDataSet"},{"_id":"6a330e1a2464545b1a616a99","component":"data2-core@Data2TableDataSource","system":"69651bdddc863af2ecd97d3d","params":{"table":"produto-config","schema":[{"component":"data2-core-types@Field","params":{"key":"product_id","title":"Product ID","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"tipo_cliente","title":"Tipo Cliente","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"consumo","title":"Consumo","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"desconto","title":"Desconto","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"synced","title":"Synced","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"updatedAt","title":"Updated At","component":"data2-core-primitives@Date"}}]},"reference":"produto-config"}]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}