Tudo fica em um arquivo SQLite no próprio computador: histórico por conversa, pausas, lembretes, anotações e os vínculos com a agenda. O registro de avisos não guarda o conteúdo das mensagens.
robo/estado.py
CREATE TABLE IF NOT EXISTS historico (
n INTEGER PRIMARY KEY AUTOINCREMENT, chat TEXT NOT NULL,
papel TEXT NOT NULL, texto TEXT NOT NULL, ts INTEGER NOT NULL);
CREATE TABLE IF NOT EXISTS conversas (
chat TEXT PRIMARY KEY, nome TEXT, numero TEXT,
pausa_ate REAL NOT NULL DEFAULT 0, responder_em REAL);
CREATE TABLE IF NOT EXISTS lembretes (
n INTEGER PRIMARY KEY AUTOINCREMENT, chat TEXT NOT NULL,
quando REAL NOT NULL, texto TEXT NOT NULL,
estado TEXT NOT NULL DEFAULT 'pendente');
CREATE TABLE IF NOT EXISTS agenda_eventos (
n INTEGER PRIMARY KEY AUTOINCREMENT, chat TEXT NOT NULL,
evento_id TEXT NOT NULL UNIQUE, titulo TEXT NOT NULL,
inicio TEXT NOT NULL, estado TEXT NOT NULL, lembrete_n INTEGER);