20260708120000_create_atendimentos_tables.cjs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. exports.up = function (knex) {
  2. return knex.schema
  3. .createTable("atendimento_clientes", (t) => {
  4. t.integer("Id").unsigned().primary(); // Id do cliente no chatbot (ifbot)
  5. t.string("Nome", 255).notNullable();
  6. t.string("Foto", 500).nullable();
  7. t.string("Wid", 30).nullable();
  8. t.string("Ultima2", 255).nullable();
  9. t.string("Ultimacliente2", 255).nullable();
  10. t.boolean("Deadmensage2").nullable();
  11. t.timestamp("CreatedAt").notNullable().defaultTo(knex.fn.now());
  12. t.timestamp("UpdatedAt").notNullable().defaultTo(knex.fn.now());
  13. t.index(["Wid"]);
  14. })
  15. .createTable("atendimentos", (t) => {
  16. t.integer("Id").unsigned().primary(); // Id do protocolo no chatbot (ifbot)
  17. t.string("Codigo", 50).notNullable();
  18. t.integer("Status").notNullable();
  19. t.integer("ClienteId").unsigned().notNullable();
  20. t.string("Setor", 100).nullable();
  21. t.string("SourceUrl", 500).nullable();
  22. t.timestamp("IngestedAt").notNullable().defaultTo(knex.fn.now());
  23. t.timestamp("CreatedAt").notNullable().defaultTo(knex.fn.now());
  24. t.timestamp("UpdatedAt").notNullable().defaultTo(knex.fn.now());
  25. t.foreign("ClienteId").references("atendimento_clientes.Id").onDelete("CASCADE");
  26. t.unique(["Codigo"]);
  27. t.index(["ClienteId"]);
  28. t.index(["Setor"]);
  29. t.index(["Status"]);
  30. })
  31. .createTable("atendimento_mensagens", (t) => {
  32. t.bigInteger("Id").unsigned().primary(); // Id da mensagem no chatbot (ifbot)
  33. t.integer("AtendimentoId").unsigned().notNullable();
  34. t.text("Body").nullable();
  35. t.integer("Resposta").nullable();
  36. t.datetime("Timestamp").nullable();
  37. t.string("Tipodemidia", 30).nullable();
  38. t.string("Midia", 500).nullable();
  39. t.string("Autor", 255).nullable();
  40. t.text("Citacao").nullable();
  41. t.foreign("AtendimentoId").references("atendimentos.Id").onDelete("CASCADE");
  42. t.index(["AtendimentoId"]);
  43. t.index(["Timestamp"]);
  44. });
  45. };
  46. exports.down = function (knex) {
  47. return knex.schema
  48. .dropTable("atendimento_mensagens")
  49. .dropTable("atendimentos")
  50. .dropTable("atendimento_clientes");
  51. };