#!/bin/bash

# 锡林郭勒盟智慧养殖平台 - 生产环境启动脚本
# 服务器目录: /data/nodejs/xlxumu/

TARGET_DIR="/data/nodejs/xlxumu"
APP_DIR="$TARGET_DIR/backend/api"

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

echo -e "${GREEN}🚀 启动锡林郭勒盟智慧养殖平台API服务${NC}"

# 检查Node.js是否安装
if ! command -v node &> /dev/null; then
    echo -e "${RED}❌ Node.js未安装，请先安装Node.js${NC}"
    exit 1
fi

# 检查npm是否安装
if ! command -v npm &> /dev/null; then
    echo -e "${RED}❌ npm未安装，请先安装npm${NC}"
    exit 1
fi

# 检查PM2是否安装
if ! command -v pm2 &> /dev/null; then
    echo -e "${YELLOW}📦 安装PM2...${NC}"
    npm install -g pm2
fi

# 进入应用目录
cd $APP_DIR

# 检查目录是否存在
if [ ! -d "$APP_DIR" ]; then
    echo -e "${RED}❌ 应用目录不存在: $APP_DIR${NC}"
    exit 1
fi

# 检查package.json是否存在
if [ ! -f "package.json" ]; then
    echo -e "${RED}❌ package.json不存在${NC}"
    exit 1
fi

# 安装依赖
echo -e "${YELLOW}📦 安装项目依赖...${NC}"
npm install --production

# 停止现有服务（如果存在）
echo -e "${YELLOW}🛑 停止现有服务...${NC}"
pm2 delete xlxumu-api 2>/dev/null || true

# 启动服务
echo -e "${YELLOW}🚀 启动API服务...${NC}"
pm2 start server.js --name xlxumu-api --env production

# 配置PM2开机自启
echo -e "${YELLOW}⚙️  配置PM2开机自启...${NC}"
pm2 startup
pm2 save

# 显示服务状态
echo -e "${GREEN}✅ 服务启动完成！${NC}"
echo -e "${GREEN}📊 当前服务状态:${NC}"
pm2 status xlxumu-api

echo -e "${GREEN}🌐 API服务运行在: http://localhost:3350${NC}"
echo -e "${GREEN}📋 查看详细日志: pm2 logs xlxumu-api${NC}"
echo -e "${GREEN}🔄 重启服务: pm2 restart xlxumu-api${NC}"
echo -e "${GREEN}⏹️  停止服务: pm2 stop xlxumu-api${NC}"