#!/bin/bash

# 声音克隆MCP服务停止脚本

set -e

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

# 日志函数
log_info() {
    echo -e "${BLUE}[INFO]${NC} $1"
}

log_success() {
    echo -e "${GREEN}[SUCCESS]${NC} $1"
}

log_warning() {
    echo -e "${YELLOW}[WARNING]${NC} $1"
}

log_error() {
    echo -e "${RED}[ERROR]${NC} $1"
}

# 停止服务
stop_service() {
    log_info "停止声音克隆MCP服务..."
    
    local base_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
    local compose_file="$base_dir/docker/docker-compose.voice-clone-mcp.yml"
    
    if [ ! -f "$compose_file" ]; then
        log_error "Docker Compose文件不存在: $compose_file"
        return 1
    fi
    
    # 停止服务
    cd "$base_dir/docker"
    docker-compose -f docker-compose.voice-clone-mcp.yml down
    
    if [ $? -eq 0 ]; then
        log_success "声音克隆MCP服务已停止"
    else
        log_error "停止服务时出现错误"
        return 1
    fi
}

# 清理资源
cleanup_resources() {
    log_info "清理临时资源..."
    
    # 清理临时文件
    local base_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
    local temp_dir="$base_dir/voice-clone/voice-clone-mcp/temp"
    
    if [ -d "$temp_dir" ]; then
        find "$temp_dir" -type f -name "*.wav" -mtime +1 -delete 2>/dev/null || true
        find "$temp_dir" -type f -name "*.mp3" -mtime +1 -delete 2>/dev/null || true
        log_success "临时文件清理完成"
    fi
}

# 主函数
main() {
    echo -e "${BLUE}🛑 停止声音克隆MCP服务${NC}"
    echo ""
    
    stop_service
    cleanup_resources
    
    echo ""
    log_success "声音克隆MCP服务已完全停止"
}

# 运行主函数
main "$@"