DELIMITER //

CREATE OR REPLACE PROCEDURE sync_myfavor(
  IN p_moduleid VARCHAR(100),
  IN p_functiontag VARCHAR(100),
  IN p_userid VARCHAR(100)
)
  Build Date : 2023/11/01
  
  Modify History
    Item Who        Date       Modify Docs
    ==== ========== ========== ================================================
    1    Michael    2023/11/01 Init
    2    Michael    2025/07/20 改寫為 MariaDB 並最佳化(ChatGPT+DeepSeek)
*/
BEGIN
  DECLARE v_count INT;
  
  -- check if exists
  SELECT COUNT(*) INTO v_count 
  FROM sys_myfavor 
  WHERE module = p_moduleid 
    AND functiontag = p_functiontag 
    AND userid = p_userid;
  
  -- 已存在刪除，否則 update
  IF v_count > 0 THEN
    DELETE FROM sys_myfavor 
    WHERE module = p_moduleid 
      AND functiontag = p_functiontag 
      AND userid = p_userid;
  ELSE
    INSERT INTO sys_myfavor (module, functiontag, userid)
    VALUES (p_moduleid, p_functiontag, p_userid);
  END IF;
  
  -- return
  SELECT 0 AS code, 'ok' AS msg;
END //

DELIMITER ;