<?php
include_once('./_common.php');

if (!$is_member) die('로그인이 필요합니다.');

$action = $_POST['action'];
$target_id = $_POST['target_id'];

if ($action == 'follow') {
    // 팔로우 추가
    $current_id = $member['mb_id'];

    // 현재 팔로우된 회원의 mb_1 필드에서 기존 데이터를 가져옴
    $query = "SELECT mb_1 FROM {$g5['member_table']} WHERE mb_id = '{$current_id}'";
    $result = sql_fetch($query);
    
    // 기존 데이터가 있을 경우, ','로 구분하여 추가
    if ($result['mb_1']) {
        $new_following = $result['mb_1'] . ',' . $target_id;
    } else {
        $new_following = $target_id; // mb_1이 비어있을 경우 ID만 저장
    }

    // 여분 필드 1의 형식 검증 및 수정
    $following_ids = array_filter(array_unique(explode(',', $new_following)));
    $new_following = implode(',', $following_ids);
    
    // 잘못된 형식 수정: 여분 필드가 ','로 시작하거나 끝나는 경우
    if (strpos($new_following, ',') === 0) {
        $new_following = substr($new_following, 1);  // 앞에 있는 ',' 제거
    }
    if (substr($new_following, -1) === ',') {
        $new_following = substr($new_following, 0, -1);  // 뒤에 있는 ',' 제거
    }

    // 팔로우된 회원의 mb_1 업데이트
    $query2 = "UPDATE {$g5['member_table']} SET mb_1 = '{$new_following}' WHERE mb_id = '{$current_id}'";
    sql_query($query2);

    // 팔로우된 회원의 mb_2에 현재 로그인한 회원 ID 추가
    $query3 = "UPDATE {$g5['member_table']} SET mb_2 = IF(mb_2 IS NULL OR mb_2 = '', '{$current_id}', CONCAT(mb_2, ',', '{$current_id}')) WHERE mb_id = '{$target_id}'";
    sql_query($query3);
    
    echo json_encode(['status' => 'success']);
} elseif ($action == 'unfollow') {
    // 팔로우 취소
    $current_id = $member['mb_id'];

    // 현재 팔로우된 회원의 mb_1 필드에서 기존 데이터를 가져옴
    $query = "SELECT mb_1 FROM {$g5['member_table']} WHERE mb_id = '{$current_id}'";
    $result = sql_fetch($query);
    
    // 기존 데이터에서 target_id를 제거
    if ($result['mb_1']) {
        $following_ids = explode(',', $result['mb_1']);
        $following_ids = array_filter($following_ids, function($id) use ($target_id) {
            return $id !== $target_id;
        });
        
        // 새로운 팔로우 목록 설정
        if (count($following_ids) > 0) {
            $new_following = implode(',', $following_ids);
        } else {
            $new_following = ''; // 아이디가 하나뿐일 때 빈 문자열로 설정
        }
    } else {
        $new_following = NULL;
    }

    // 팔로우 취소
    $query2 = "UPDATE {$g5['member_table']} SET mb_1 = '{$new_following}' WHERE mb_id = '{$current_id}'";
    sql_query($query2);

    // 팔로우된 회원의 mb_2에서 현재 로그인한 회원 ID 제거
    $query3 = "UPDATE {$g5['member_table']} SET mb_2 = REPLACE(mb_2, '{$current_id}', '') WHERE mb_id = '{$target_id}'";
    sql_query($query3);

    // 쉼표와 여분의 ID 제거
    $query4 = "UPDATE {$g5['member_table']} SET mb_2 = TRIM(BOTH ',' FROM REPLACE(mb_2, ',$current_id', '')) WHERE mb_id = '{$target_id}'";
    sql_query($query4);

    // 여분의 쉼표 제거
    $query5 = "UPDATE {$g5['member_table']} SET mb_2 = TRIM(BOTH ',' FROM mb_2) WHERE mb_id = '{$target_id}'";
    sql_query($query5);
    
    echo json_encode(['status' => 'success']);
}
?>