first commit 2

This commit is contained in:
hmw1001
2026-06-11 18:47:38 +09:00
parent c768729ce6
commit 6f534e33a6
11095 changed files with 1595758 additions and 0 deletions
@@ -0,0 +1,59 @@
<?php
include_once('../../_common.php');
// 💡 [추가] 알림 헬퍼 포함
include_once('../lib/notification_helper.php');
header('Content-Type: application/json');
if (!$is_member) {
die(json_encode(['success' => false, 'message' => '로그인이 필요합니다.']));
}
$action = $_POST['action'] ?? '';
$reservation_id = (int)($_POST['id'] ?? 0);
try {
if ($action === 'cancel') {
if (!$reservation_id) {
throw new Exception('예약 ID가 없습니다.');
}
// 본인의 예약인지 확인
$sql = "SELECT * FROM expert_visit_reservations WHERE id = '{$reservation_id}' AND (customer_id = '{$member['mb_id']}' OR customer_phone = '{$member['mb_hp']}')";
$reservation = sql_fetch($sql);
if (!$reservation) {
throw new Exception('취소할 수 있는 예약 정보가 없거나 권한이 없습니다.');
}
// 이미 취소되었거나 완료된 예약은 변경 불가
if ($reservation['status'] === 'cancelled' || $reservation['status'] === 'completed') {
throw new Exception('이미 취소되었거나 완료된 예약입니다.');
}
// 예약 취소 처리
$sql_update = "UPDATE expert_visit_reservations
SET status = 'cancelled',
updated_at = NOW(),
updated_by = '{$member['mb_id']}'
WHERE id = '{$reservation_id}'";
if (sql_query($sql_update)) {
// 💡 [수정] 예약 취소 알림 발송
if (function_exists('notify_for_expert_visit')) {
notify_for_expert_visit($reservation_id, '예약취소');
}
echo json_encode(['success' => true, 'message' => '예약이 정상적으로 취소되었습니다.']);
} else {
throw new Exception('예약 취소 중 오류가 발생했습니다.');
}
} else {
throw new Exception('잘못된 요청입니다.');
}
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
}
?>