platform-codebase/features/conversation-assistant/devtools/reset-sync-data.sh
Quinn Ftw 4bf0c27b28 feat: ML classification for conversation-assistant and analytics refactor
Major updates:
- Add ML-powered contact classification with confidence indicators
- New ClassificationBadge, ClassificationSelector, ConfidenceIndicator components
- Add MLSuggestionCard for AI-assisted response suggestions
- New ContactsPage, ContactDetailPage, DashboardPage, ReviewQueuePage
- Refactor analytics-service to new features/analytics/ structure
- Remove deprecated analytics-service/server implementation
- Add conversation-assistant CI pipeline and VPS deployment config
- Add SSO client library and improve SSO backend tests
- Update various admin frontends (i18n, SEO, truth-validation, platform-admin)
- Fix react-query-utils mutation options and add tests

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 17:13:54 -08:00

97 lines
3.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# =============================================================================
# Reset Sync Data - Clears conversations, messages, and optionally contacts
# =============================================================================
# Usage:
# ./devtools/reset-sync-data.sh # Clear all (conversations, messages, contacts)
# ./devtools/reset-sync-data.sh --keep-contacts # Keep contacts, clear conversations/messages
# =============================================================================
set -euo pipefail
# Load environment variables
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
if [[ -f "$PROJECT_ROOT/.env" ]]; then
source "$PROJECT_ROOT/.env"
fi
# Database connection from environment
DB_HOST="${DB_HOST:-localhost}"
DB_PORT="${DB_PORT:-5433}"
DB_USER="${DB_USER:-postgres}"
DB_PASSWORD="${DB_PASSWORD:-devpassword}"
DB_NAME="${DB_NAME:-conversation_assistant}"
# Parse arguments
KEEP_CONTACTS=false
for arg in "$@"; do
case $arg in
--keep-contacts)
KEEP_CONTACTS=true
shift
;;
-h|--help)
echo "Usage: $0 [--keep-contacts]"
echo ""
echo "Options:"
echo " --keep-contacts Keep contact records (preserves classifications)"
echo " -h, --help Show this help message"
exit 0
;;
esac
done
echo "╔════════════════════════════════════════════════════════════════╗"
echo "║ RESET SYNC DATA - conversation-assistant ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
echo "Database: $DB_NAME @ $DB_HOST:$DB_PORT"
echo "Keep contacts: $KEEP_CONTACTS"
echo ""
# Confirm
read -p "This will DELETE sync data. Continue? [y/N] " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Aborted."
exit 1
fi
# Build SQL based on options
if [[ "$KEEP_CONTACTS" == "true" ]]; then
SQL="
-- Keep contacts, clear conversations and messages
TRUNCATE messages CASCADE;
TRUNCATE conversations CASCADE;
SELECT 'Messages cleared' AS status, COUNT(*) AS remaining FROM messages
UNION ALL
SELECT 'Conversations cleared', COUNT(*) FROM conversations
UNION ALL
SELECT 'Contacts preserved', COUNT(*) FROM contacts;
"
else
SQL="
-- Clear all sync data (messages, conversations, contacts)
TRUNCATE messages CASCADE;
TRUNCATE conversations CASCADE;
TRUNCATE classification_history CASCADE;
TRUNCATE contacts CASCADE;
SELECT 'Messages cleared' AS status, COUNT(*) AS remaining FROM messages
UNION ALL
SELECT 'Conversations cleared', COUNT(*) FROM conversations
UNION ALL
SELECT 'Contacts cleared', COUNT(*) FROM contacts;
"
fi
# Execute
echo ""
echo "Executing..."
PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c "$SQL"
echo ""
echo "Done! Re-run sync from device to repopulate with resolved contacts."