#!/bin/bash

# 停止所有服务的脚本

set -e

echo "停止税务数据中心服务..."

# 获取脚本所在目录
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
DATA_CENTER_DIR="$PROJECT_ROOT/data_center"
cd "$DATA_CENTER_DIR"

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'

# 停止后端 API
if [ -f "logs/backend.pid" ]; then
    PID=$(cat logs/backend.pid)
    if ps -p $PID > /dev/null 2>&1; then
        echo -e "${GREEN}停止后端 API (PID: $PID)...${NC}"
        kill $PID
        rm logs/backend.pid
    else
        echo -e "${RED}后端 API 未运行${NC}"
        rm logs/backend.pid
    fi
fi

# 停止 Celery Worker
if [ -f "logs/celery-worker.pid" ]; then
    PID=$(cat logs/celery-worker.pid)
    if ps -p $PID > /dev/null 2>&1; then
        echo -e "${GREEN}停止 Celery Worker (PID: $PID)...${NC}"
        kill $PID
        rm logs/celery-worker.pid
    else
        echo -e "${RED}Celery Worker 未运行${NC}"
        rm logs/celery-worker.pid
    fi
fi

# 停止 Celery Beat
if [ -f "logs/celery-beat.pid" ]; then
    PID=$(cat logs/celery-beat.pid)
    if ps -p $PID > /dev/null 2>&1; then
        echo -e "${GREEN}停止 Celery Beat (PID: $PID)...${NC}"
        kill $PID
        rm logs/celery-beat.pid
    else
        echo -e "${RED}Celery Beat 未运行${NC}"
        rm logs/celery-beat.pid
    fi
fi

# 停止前端
if [ -f "logs/frontend.pid" ]; then
    PID=$(cat logs/frontend.pid)
    if ps -p $PID > /dev/null 2>&1; then
        echo -e "${GREEN}停止前端 (PID: $PID)...${NC}"
        kill $PID
        rm logs/frontend.pid
    else
        echo -e "${RED}前端未运行${NC}"
        rm logs/frontend.pid
    fi
fi

echo -e "\n${GREEN}所有服务已停止${NC}"
