{
  "version": "5",
  "dialect": "mysql",
  "id": "a9381a2e-2d5f-481d-8f21-58dfe46fefd1",
  "prevId": "511dcb5b-a136-44a2-80a5-9dc0bcfea0a8",
  "tables": {
    "agents": {
      "name": "agents",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "name": {
          "name": "name",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "email": {
          "name": "email",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "phone": {
          "name": "phone",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('online','offline','busy')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'offline'"
        },
        "callsHandled": {
          "name": "callsHandled",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "messagesHandled": {
          "name": "messagesHandled",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "conversionRate": {
          "name": "conversionRate",
          "type": "decimal(5,2)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "agents_id": {
          "name": "agents_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "calls": {
      "name": "calls",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "callerName": {
          "name": "callerName",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "callerPhone": {
          "name": "callerPhone",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "direction": {
          "name": "direction",
          "type": "enum('inbound','outbound')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'inbound'"
        },
        "status": {
          "name": "status",
          "type": "enum('answered','missed','voicemail','busy')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'answered'"
        },
        "duration": {
          "name": "duration",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": 0
        },
        "assignedAgentId": {
          "name": "assignedAgentId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "recordingUrl": {
          "name": "recordingUrl",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "calls_id": {
          "name": "calls_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "clients": {
      "name": "clients",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "name": {
          "name": "name",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "industry": {
          "name": "industry",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "contact": {
          "name": "contact",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "phone": {
          "name": "phone",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "email": {
          "name": "email",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('active','inactive','trial')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'active'"
        },
        "subscription": {
          "name": "subscription",
          "type": "enum('starter','pro','enterprise')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'starter'"
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "clients_id": {
          "name": "clients_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "company_settings": {
      "name": "company_settings",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "companyName": {
          "name": "companyName",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "companyEmail": {
          "name": "companyEmail",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "companyPhone": {
          "name": "companyPhone",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "companyAddress": {
          "name": "companyAddress",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "website": {
          "name": "website",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "timezone": {
          "name": "timezone",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "'UTC'"
        },
        "language": {
          "name": "language",
          "type": "varchar(8)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "'fr'"
        },
        "whatsappEnabled": {
          "name": "whatsappEnabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "emailEnabled": {
          "name": "emailEnabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "chatEnabled": {
          "name": "chatEnabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "callsEnabled": {
          "name": "callsEnabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "emailNotifications": {
          "name": "emailNotifications",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "smsNotifications": {
          "name": "smsNotifications",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "company_settings_id": {
          "name": "company_settings_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {
        "company_settings_clientId_unique": {
          "name": "company_settings_clientId_unique",
          "columns": [
            "clientId"
          ]
        }
      },
      "checkConstraint": {}
    },
    "conversations": {
      "name": "conversations",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "contactName": {
          "name": "contactName",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "contactPhone": {
          "name": "contactPhone",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "channel": {
          "name": "channel",
          "type": "enum('whatsapp','call','sms')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'whatsapp'"
        },
        "status": {
          "name": "status",
          "type": "enum('open','qualified','completed','archived')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'open'"
        },
        "assignedAgentId": {
          "name": "assignedAgentId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "leadId": {
          "name": "leadId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "category": {
          "name": "category",
          "type": "enum('support','sales','billing','technical','general')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'general'"
        },
        "tags": {
          "name": "tags",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "priority": {
          "name": "priority",
          "type": "enum('low','normal','high','urgent')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'normal'"
        },
        "lastMessage": {
          "name": "lastMessage",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "lastMessageAt": {
          "name": "lastMessageAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "(now())"
        },
        "unreadCount": {
          "name": "unreadCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "conversations_id": {
          "name": "conversations_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "daily_stats": {
      "name": "daily_stats",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "date": {
          "name": "date",
          "type": "varchar(16)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "callsCount": {
          "name": "callsCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "messagesCount": {
          "name": "messagesCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "leadsCount": {
          "name": "leadsCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "emailsCount": {
          "name": "emailsCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "chatsCount": {
          "name": "chatsCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "daily_stats_id": {
          "name": "daily_stats_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "emails": {
      "name": "emails",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "fromName": {
          "name": "fromName",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "fromEmail": {
          "name": "fromEmail",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "toEmail": {
          "name": "toEmail",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "subject": {
          "name": "subject",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "body": {
          "name": "body",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "replyBody": {
          "name": "replyBody",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('unread','read','replied','archived')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'unread'"
        },
        "category": {
          "name": "category",
          "type": "enum('support','sales','billing','technical','general')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'general'"
        },
        "priority": {
          "name": "priority",
          "type": "enum('low','normal','high','urgent')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'normal'"
        },
        "assignedAgentId": {
          "name": "assignedAgentId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "repliedAt": {
          "name": "repliedAt",
          "type": "datetime",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "emails_id": {
          "name": "emails_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "invoices": {
      "name": "invoices",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "subscriptionId": {
          "name": "subscriptionId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "invoiceNumber": {
          "name": "invoiceNumber",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "amount": {
          "name": "amount",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "currency": {
          "name": "currency",
          "type": "varchar(8)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'USD'"
        },
        "status": {
          "name": "status",
          "type": "enum('paid','pending','failed','refunded')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'pending'"
        },
        "description": {
          "name": "description",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "paidAt": {
          "name": "paidAt",
          "type": "datetime",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "dueDate": {
          "name": "dueDate",
          "type": "datetime",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "invoices_id": {
          "name": "invoices_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "leads": {
      "name": "leads",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "name": {
          "name": "name",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "phone": {
          "name": "phone",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "email": {
          "name": "email",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "source": {
          "name": "source",
          "type": "enum('whatsapp','call','web','email','chat','referral','other')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'whatsapp'"
        },
        "interest": {
          "name": "interest",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('New','Qualified','Converted','Lost')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'New'"
        },
        "assignedAgentId": {
          "name": "assignedAgentId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "company": {
          "name": "company",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "leads_id": {
          "name": "leads_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "messages": {
      "name": "messages",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "conversationId": {
          "name": "conversationId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "senderType": {
          "name": "senderType",
          "type": "enum('agent','contact','system')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'contact'"
        },
        "senderName": {
          "name": "senderName",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "content": {
          "name": "content",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "messageType": {
          "name": "messageType",
          "type": "enum('text','image','audio','document')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'text'"
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "messages_id": {
          "name": "messages_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "subscription_plans": {
      "name": "subscription_plans",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "name": {
          "name": "name",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "displayName": {
          "name": "displayName",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "priceMonthly": {
          "name": "priceMonthly",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "priceYearly": {
          "name": "priceYearly",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "maxAgents": {
          "name": "maxAgents",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 1
        },
        "maxConversations": {
          "name": "maxConversations",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 100
        },
        "features": {
          "name": "features",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "isActive": {
          "name": "isActive",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "subscription_plans_id": {
          "name": "subscription_plans_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "subscriptions": {
      "name": "subscriptions",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "planId": {
          "name": "planId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "planName": {
          "name": "planName",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('active','cancelled','expired','trial')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'trial'"
        },
        "billingCycle": {
          "name": "billingCycle",
          "type": "enum('monthly','yearly')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'monthly'"
        },
        "amount": {
          "name": "amount",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "currency": {
          "name": "currency",
          "type": "varchar(8)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'USD'"
        },
        "startDate": {
          "name": "startDate",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "renewalDate": {
          "name": "renewalDate",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "cancelledAt": {
          "name": "cancelledAt",
          "type": "datetime",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "subscriptions_id": {
          "name": "subscriptions_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "tickets": {
      "name": "tickets",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "ticketNumber": {
          "name": "ticketNumber",
          "type": "varchar(32)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "contactName": {
          "name": "contactName",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "contactEmail": {
          "name": "contactEmail",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "contactPhone": {
          "name": "contactPhone",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "channel": {
          "name": "channel",
          "type": "enum('whatsapp','email','chat','call','other')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'other'"
        },
        "subject": {
          "name": "subject",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "priority": {
          "name": "priority",
          "type": "enum('low','normal','high','urgent')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'normal'"
        },
        "status": {
          "name": "status",
          "type": "enum('new','in_progress','waiting_client','resolved','closed')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'new'"
        },
        "assignedAgentId": {
          "name": "assignedAgentId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "language": {
          "name": "language",
          "type": "varchar(8)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "'fr'"
        },
        "resolvedAt": {
          "name": "resolvedAt",
          "type": "datetime",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "tickets_id": {
          "name": "tickets_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "users": {
      "name": "users",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "openId": {
          "name": "openId",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "email": {
          "name": "email",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "loginMethod": {
          "name": "loginMethod",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "role": {
          "name": "role",
          "type": "enum('user','admin')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'user'"
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        },
        "lastSignedIn": {
          "name": "lastSignedIn",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "users_id": {
          "name": "users_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {
        "users_openId_unique": {
          "name": "users_openId_unique",
          "columns": [
            "openId"
          ]
        }
      },
      "checkConstraint": {}
    },
    "web_chat_messages": {
      "name": "web_chat_messages",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "chatId": {
          "name": "chatId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "senderType": {
          "name": "senderType",
          "type": "enum('agent','visitor','system')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'visitor'"
        },
        "senderName": {
          "name": "senderName",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "content": {
          "name": "content",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "web_chat_messages_id": {
          "name": "web_chat_messages_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "web_chats": {
      "name": "web_chats",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "clientId": {
          "name": "clientId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "visitorName": {
          "name": "visitorName",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "visitorEmail": {
          "name": "visitorEmail",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('active','waiting','closed','archived')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'waiting'"
        },
        "category": {
          "name": "category",
          "type": "enum('support','sales','billing','technical','general')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'general'"
        },
        "assignedAgentId": {
          "name": "assignedAgentId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "lastMessage": {
          "name": "lastMessage",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "lastMessageAt": {
          "name": "lastMessageAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "(now())"
        },
        "unreadCount": {
          "name": "unreadCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "pageUrl": {
          "name": "pageUrl",
          "type": "varchar(512)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "web_chats_id": {
          "name": "web_chats_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    }
  },
  "views": {},
  "_meta": {
    "schemas": {},
    "tables": {},
    "columns": {}
  },
  "internal": {
    "tables": {},
    "indexes": {}
  }
}