This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Apply exact email/alias matches from a BARON-SSO export to the template."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import csv
|
||||
import re
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
EMAIL_RE = re.compile(r"[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}", re.IGNORECASE)
|
||||
MATCH_COLUMNS = (
|
||||
"Email",
|
||||
"Meta:secondary_emails",
|
||||
"Meta:aliasEmails",
|
||||
"Meta:worksmobileAliasEmails",
|
||||
"Meta:sub_email",
|
||||
"Meta:external_sub_email",
|
||||
"Meta:source_login_id",
|
||||
)
|
||||
|
||||
|
||||
def emails(value: str | None) -> set[str]:
|
||||
return {match.lower() for match in EMAIL_RE.findall(value or "")}
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--users", type=Path, default=Path("users_export_20260805.csv"))
|
||||
parser.add_argument(
|
||||
"--template",
|
||||
type=Path,
|
||||
default=Path("scripts/generated/egbim_migration/identity_mapping_template.csv"),
|
||||
)
|
||||
parser.add_argument("--output", type=Path)
|
||||
args = parser.parse_args()
|
||||
output = args.output or args.template
|
||||
|
||||
with args.users.open(encoding="utf-8-sig", newline="") as stream:
|
||||
users = list(csv.DictReader(stream))
|
||||
with args.template.open(encoding="utf-8", newline="") as stream:
|
||||
template = list(csv.DictReader(stream))
|
||||
|
||||
index: dict[str, list[tuple[dict[str, str], str]]] = defaultdict(list)
|
||||
for user in users:
|
||||
for column in MATCH_COLUMNS:
|
||||
for identifier in emails(user.get(column)):
|
||||
index[identifier].append((user, column))
|
||||
|
||||
resolved = 0
|
||||
ambiguous = 0
|
||||
unmatched = 0
|
||||
for row in template:
|
||||
identifier = row["legacy_identifier"].strip().lower()
|
||||
candidates = index.get(identifier, [])
|
||||
users_by_id = {user["user_id"]: (user, column) for user, column in candidates}
|
||||
if len(users_by_id) != 1:
|
||||
row["resolution_status"] = "AMBIGUOUS" if len(users_by_id) > 1 else "UNRESOLVED"
|
||||
row["notes"] = (
|
||||
"BARON-SSO export에서 동일 alias가 여러 사용자와 일치함"
|
||||
if len(users_by_id) > 1
|
||||
else "정확한 이메일/보조 이메일 일치 없음; 이름만으로 자동 매핑하지 않음"
|
||||
)
|
||||
if len(users_by_id) > 1:
|
||||
ambiguous += 1
|
||||
else:
|
||||
unmatched += 1
|
||||
continue
|
||||
|
||||
user, matched_column = next(iter(users_by_id.values()))
|
||||
row["sso_subject"] = user.get("user_id", "")
|
||||
row["tenant_id"] = user.get("tenant_id", "")
|
||||
row["email"] = user.get("Email", "")
|
||||
row["name"] = user.get("Name", "")
|
||||
row["department"] = user.get("Meta:department") or user.get("JobTitle") or user.get("Position") or ""
|
||||
row["phone"] = user.get("Phone", "")
|
||||
row["resolution_status"] = "RESOLVED"
|
||||
row["notes"] = f"exact match: {matched_column}"
|
||||
resolved += 1
|
||||
|
||||
with output.open("w", encoding="utf-8", newline="") as stream:
|
||||
writer = csv.DictWriter(stream, fieldnames=template[0].keys())
|
||||
writer.writeheader()
|
||||
writer.writerows(template)
|
||||
|
||||
print(f"template_rows={len(template)} resolved={resolved} ambiguous={ambiguous} unmatched={unmatched}")
|
||||
print(f"output={output}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,149 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Build a BARON-SSO identity mapping template from the EGBIM QA dump.
|
||||
|
||||
The output is a review template. It never invents an SSO subject or tenant and
|
||||
it never assigns administrator permissions.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import csv
|
||||
from pathlib import Path
|
||||
|
||||
import migrate_egbim_dump
|
||||
|
||||
|
||||
migrate_egbim_dump.TABLES["qa_comments"] = (
|
||||
"comment_id",
|
||||
"post_id",
|
||||
"commenter",
|
||||
"content",
|
||||
"created_at",
|
||||
"user_name",
|
||||
"updated_at",
|
||||
)
|
||||
|
||||
ADMIN_CANDIDATE_EMAILS = {
|
||||
"cjy627@hanmaceng.co.kr",
|
||||
"b23072@hanmaceng.co.kr",
|
||||
"kjy0426@hanmaceng.co.kr",
|
||||
"b21367@hanmaceng.co.kr",
|
||||
"rmsgud1202@hanmaceng.co.kr",
|
||||
}
|
||||
|
||||
|
||||
def add_identity(
|
||||
identities: dict[str, dict[str, object]],
|
||||
identifier: str | None,
|
||||
*,
|
||||
legacy_user_id: str | None = None,
|
||||
legacy_name: str | None = None,
|
||||
post_count: bool = False,
|
||||
comment_count: bool = False,
|
||||
) -> None:
|
||||
key = (identifier or "").strip().lower()
|
||||
if not key:
|
||||
return
|
||||
item = identities.setdefault(
|
||||
key,
|
||||
{
|
||||
"legacy_user_ids": set(),
|
||||
"legacy_names": set(),
|
||||
"post_count": 0,
|
||||
"comment_count": 0,
|
||||
"admin_candidate": key in ADMIN_CANDIDATE_EMAILS,
|
||||
},
|
||||
)
|
||||
if legacy_user_id:
|
||||
item["legacy_user_ids"].add(str(legacy_user_id))
|
||||
if legacy_name:
|
||||
item["legacy_names"].add(str(legacy_name))
|
||||
if post_count:
|
||||
item["post_count"] += 1
|
||||
if comment_count:
|
||||
item["comment_count"] += 1
|
||||
|
||||
|
||||
def write_template(posts: list[dict], comments: list[dict], output: Path) -> int:
|
||||
identities: dict[str, dict[str, object]] = {}
|
||||
for row in posts:
|
||||
add_identity(
|
||||
identities,
|
||||
row.get("login_id"),
|
||||
legacy_user_id=row.get("user_id"),
|
||||
legacy_name=row.get("user_name"),
|
||||
post_count=True,
|
||||
)
|
||||
for row in comments:
|
||||
add_identity(
|
||||
identities,
|
||||
row.get("commenter"),
|
||||
legacy_name=row.get("user_name"),
|
||||
comment_count=True,
|
||||
)
|
||||
|
||||
output.parent.mkdir(parents=True, exist_ok=True)
|
||||
with output.open("w", newline="", encoding="utf-8") as stream:
|
||||
writer = csv.writer(stream)
|
||||
writer.writerow(
|
||||
[
|
||||
"legacy_identifier",
|
||||
"legacy_user_ids",
|
||||
"legacy_names",
|
||||
"post_count",
|
||||
"comment_count",
|
||||
"admin_candidate",
|
||||
"sso_subject",
|
||||
"tenant_id",
|
||||
"email",
|
||||
"name",
|
||||
"department",
|
||||
"phone",
|
||||
"resolution_status",
|
||||
"notes",
|
||||
]
|
||||
)
|
||||
for identifier in sorted(identities):
|
||||
item = identities[identifier]
|
||||
writer.writerow(
|
||||
[
|
||||
identifier,
|
||||
";".join(sorted(item["legacy_user_ids"])),
|
||||
";".join(sorted(item["legacy_names"])),
|
||||
item["post_count"],
|
||||
item["comment_count"],
|
||||
"Y" if item["admin_candidate"] else "N",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"UNRESOLVED",
|
||||
"BARON-SSO profile/secondary_emails 확인 후 입력",
|
||||
]
|
||||
)
|
||||
return len(identities)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--source-sql", type=Path, default=Path("scripts/egbim_qa.sql"))
|
||||
parser.add_argument(
|
||||
"--output",
|
||||
type=Path,
|
||||
default=Path("scripts/generated/egbim_migration/identity_mapping_template.csv"),
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
text = args.source_sql.read_text(encoding="utf-8")
|
||||
posts = migrate_egbim_dump.load_table(text, "qa_posts")
|
||||
comments = migrate_egbim_dump.load_table(text, "qa_comments")
|
||||
identities = write_template(posts, comments, args.output)
|
||||
print(f"posts={len(posts)} comments={len(comments)} identities={identities}")
|
||||
print(f"output={args.output}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Executable
+100
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
ROOT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
API_PID=""
|
||||
SECRETARY_PID=""
|
||||
WEB_PID=""
|
||||
|
||||
die() {
|
||||
echo "[dev-local] $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
require_command() {
|
||||
command -v "$1" >/dev/null 2>&1 || die "'$1' command not found"
|
||||
}
|
||||
|
||||
ensure_port_free() {
|
||||
local port="$1"
|
||||
if lsof -nP -iTCP:"$port" -sTCP:LISTEN >/dev/null 2>&1; then
|
||||
echo "[dev-local] port $port is already in use:" >&2
|
||||
lsof -nP -iTCP:"$port" -sTCP:LISTEN >&2 || true
|
||||
die "stop the process using port $port, then rerun the local server"
|
||||
fi
|
||||
}
|
||||
|
||||
wait_for_url() {
|
||||
local name="$1"
|
||||
local url="$2"
|
||||
local attempts=90
|
||||
|
||||
echo "[dev-local] waiting for $name..."
|
||||
for ((attempt = 1; attempt <= attempts; attempt++)); do
|
||||
if curl -fsS --max-time 2 "$url" >/dev/null 2>&1; then
|
||||
echo "[dev-local] $name is ready"
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
die "$name did not respond at $url within ${attempts}s"
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
local status=$?
|
||||
trap - EXIT INT TERM
|
||||
|
||||
for pid in "$WEB_PID" "$SECRETARY_PID" "$API_PID"; do
|
||||
if [[ -n "$pid" ]] && kill -0 "$pid" 2>/dev/null; then
|
||||
kill "$pid" 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
|
||||
wait 2>/dev/null || true
|
||||
exit "$status"
|
||||
}
|
||||
|
||||
require_command curl
|
||||
require_command lsof
|
||||
require_command pnpm
|
||||
|
||||
[[ -x "$ROOT_DIR/apps/secretary-api/.venv/bin/uvicorn" ]] || \
|
||||
die "Secretary API virtualenv is missing: apps/secretary-api/.venv/bin/uvicorn"
|
||||
|
||||
ensure_port_free 3100
|
||||
ensure_port_free 4000
|
||||
ensure_port_free 8010
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
(
|
||||
cd "$ROOT_DIR/apps/api"
|
||||
APP_ADDRESS=127.0.0.1 pnpm dev
|
||||
) &
|
||||
API_PID=$!
|
||||
|
||||
(
|
||||
cd "$ROOT_DIR/apps/secretary-api"
|
||||
./.venv/bin/uvicorn app.main:app --reload --host 127.0.0.1 --port 8010
|
||||
) &
|
||||
SECRETARY_PID=$!
|
||||
|
||||
(
|
||||
cd "$ROOT_DIR/apps/web"
|
||||
pnpm dev --hostname 127.0.0.1 --port 3100
|
||||
) &
|
||||
WEB_PID=$!
|
||||
|
||||
wait_for_url "API" "http://127.0.0.1:4000/api/health"
|
||||
wait_for_url "Secretary API" "http://127.0.0.1:8010/api/health"
|
||||
wait_for_url "Web" "http://127.0.0.1:3100/"
|
||||
|
||||
echo "[dev-local] all local servers are ready"
|
||||
echo "API: http://127.0.0.1:4000"
|
||||
echo "Secretary API: http://127.0.0.1:8010"
|
||||
echo "Web: http://127.0.0.1:3100"
|
||||
echo "Press Ctrl-C to stop all development servers."
|
||||
|
||||
wait -n "$API_PID" "$SECRETARY_PID" "$WEB_PID"
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,21 @@
|
||||
-- EGBIM workspace to ABC project/channel mapping discovered on staging.
|
||||
-- This is intentionally separate from Alembic because ABC IDs can differ by environment.
|
||||
-- Run once on baron_support after confirming the target IDs.
|
||||
SET NAMES utf8mb4;
|
||||
USE `baron_support`;
|
||||
|
||||
INSERT INTO workspace_channel_mappings
|
||||
(workspace_id, abc_channel_id, abc_channel_key, is_active)
|
||||
SELECT
|
||||
w.id,
|
||||
'2',
|
||||
'EGBIM',
|
||||
1
|
||||
FROM workspaces w
|
||||
WHERE w.workspace_code = 'EGBIM'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM workspace_channel_mappings m
|
||||
WHERE m.workspace_id = w.id
|
||||
AND m.abc_channel_id = '2'
|
||||
);
|
||||
@@ -0,0 +1,23 @@
|
||||
# EGBIM QA migration artifacts
|
||||
|
||||
These files are generated from `scripts/egbim_qa.sql`; the source dump itself is not a target migration script.
|
||||
|
||||
## Files
|
||||
|
||||
- `userfeedback_feedbacks.sql`: inserts the 427 legacy posts into ABC `userfeedback.feedbacks` on EGBIM channel `2`. Migration metadata is embedded in the `data` JSON because the staging schema has no `additional_data` column.
|
||||
- `support_tickets_comments.sql`: imports 427 EGBIM posts into `baron_support.support_tickets`, creates post mappings, and imports 677 legacy comments into `ticket_comments`.
|
||||
- `support_ticket_secrets.sql`: applies EGBIM `is_secret` or `is_private` to mapped `baron_support.support_tickets`.
|
||||
- `support_attachments.sql`: inserts resolved post attachments and comment images into `baron_support.attachments` after support ticket/comment mappings exist.
|
||||
- `uploads_manifest.csv`: audit list with source path, target storage key, checksum, and copy status.
|
||||
|
||||
The referenced files were copied to `uploads/EGBIM_QA/`. The container sees them under `/app/uploads/EGBIM_QA/`.
|
||||
|
||||
## Required order
|
||||
|
||||
1. Apply the support schema/migration that creates `migration_mappings`, `support_tickets`, `ticket_comments`, and `attachments`.
|
||||
2. Run `support_tickets_comments.sql` against `baron_support`. It creates 427 tickets, post mappings, and 677 comments.
|
||||
3. Run `userfeedback_feedbacks.sql` against the ABC `userfeedback` database.
|
||||
4. Run `support_ticket_secrets.sql` against `baron_support`.
|
||||
5. Run `support_attachments.sql` against `baron_support`. It resolves the EGBIM workspace automatically and links post/comment files through the mappings.
|
||||
|
||||
The one missing source file is recorded in `uploads_manifest.csv` as `MISSING`; do not create a fake attachment row for it.
|
||||
@@ -0,0 +1,245 @@
|
||||
-- Generated for baron_support.attachments.
|
||||
-- Run after EGBIM_QA POST/COMMENT migration mappings exist.
|
||||
-- Comment migration must set ticket_comments.abc_comment_id = EGBIM_QA:<source comment id>.
|
||||
SET NAMES utf8mb4;
|
||||
USE `baron_support`;
|
||||
SET @EGBIM_WORKSPACE_ID = (SELECT id FROM workspaces WHERE workspace_code='EGBIM');
|
||||
SET @EGBIM_UPLOADER_ID = 'migration:EGBIM_QA';
|
||||
SET @EGBIM_UPLOADER_TENANT_ID = 'migration:EGBIM_QA';
|
||||
START TRANSACTION;
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'프린트 오류.png','4.png','LOCAL','/app/uploads','EGBIM_QA/attachments/4.png','image/png','png',133728,'bd914f2164a13dba962179cd7a64da1099d75fd6a58886849a331b23e7b6f015','EGBIM_QA:POST_ATTACHMENT:4','ACTIVE','2025-08-27 15:52:17','2025-08-27 15:52:17' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='14' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:4');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'이지빔개선이미지1.PNG','5.png','LOCAL','/app/uploads','EGBIM_QA/attachments/5.png','image/png','png',86593,'f9315bdd7d116ea78562a9245aa0247a4e8221045218ca5977e9bbf99680ebac','EGBIM_QA:POST_ATTACHMENT:5','ACTIVE','2025-08-29 14:40:59','2025-08-29 14:40:59' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='20' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:5');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'이지빔개선이미지2.PNG','6.png','LOCAL','/app/uploads','EGBIM_QA/attachments/6.png','image/png','png',36202,'16b27fc3d232f79aeeb85723807dd041db86b0a78ef37e67ed3227f35cd98451','EGBIM_QA:POST_ATTACHMENT:6','ACTIVE','2025-08-29 14:40:59','2025-08-29 14:40:59' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='20' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:6');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'대야천교 A2노리.zip','7.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/7.zip','application/zip','zip',5444903,'967cdcebd2445bc6957ef11f7a9ef4b231b81e008ad19ab93b046f0fa4a868bd','EGBIM_QA:POST_ATTACHMENT:7','ACTIVE','2025-08-29 15:36:39','2025-08-29 15:36:39' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='21' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:7');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'오류문의.zip','8.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/8.zip','application/zip','zip',1710514,'a63786e18553620ca4878aa09f845222aafdba1dbb0c133ffc3da5d195fe25c4','EGBIM_QA:POST_ATTACHMENT:8','ACTIVE','2025-08-29 16:01:21','2025-08-29 16:01:21' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='22' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:8');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'250902 삽도 수정(내부 표 변경).zip','10.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/10.zip','application/zip','zip',731246,'01da6bfa22ac034f89ce9c7db10aa7d007a76a58a9e2851670ee4a2c615e0de7','EGBIM_QA:POST_ATTACHMENT:10','ACTIVE','2025-09-02 16:07:44','2025-09-02 16:07:44' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='33' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:10');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'CAD상 배경이미지 예시.JPG','11.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/11.jpg','image/jpeg','jpg',61620,'8c93f224323fe78e2bce3b7fec121a9b8518f44f519c0380b4a5a2ef1929d70e','EGBIM_QA:POST_ATTACHMENT:11','ACTIVE','2025-09-03 09:44:23','2025-09-03 09:44:23' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='39' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:11');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'JPG 출력시 배경이미지 깨짐 예시.JPG','12.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/12.jpg','image/jpeg','jpg',208715,'5b0698c8d917220c52f0409a25ccb6e461863146bc0e04b0b2fe1a7ea0fb1f29','EGBIM_QA:POST_ATTACHMENT:12','ACTIVE','2025-09-03 09:44:23','2025-09-03 09:44:23' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='39' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:12');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20250903_094341.png','13.png','LOCAL','/app/uploads','EGBIM_QA/attachments/13.png','image/png','png',17656,'7ac844557281a514c33dc897282a1df8372c4052eba23067c8221cf8147c7fbf','EGBIM_QA:POST_ATTACHMENT:13','ACTIVE','2025-09-03 09:45:38','2025-09-03 09:45:38' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='41' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:13');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'11.zip','14.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/14.zip','application/zip','zip',3722287,'59bf53d3aa1b819a80acb4af4a385293d7302d1a71aed8f8f3e097a880f62b87','EGBIM_QA:POST_ATTACHMENT:14','ACTIVE','2025-09-03 15:31:36','2025-09-03 15:31:36' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='43' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:14');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20250905_175019.png','15.png','LOCAL','/app/uploads','EGBIM_QA/attachments/15.png','image/png','png',105167,'18ad50e7390753a32a26b6b24491e3df591f7c29a47b7b11b60d5e22f89db580','EGBIM_QA:POST_ATTACHMENT:15','ACTIVE','2025-09-05 17:50:35','2025-09-05 17:50:35' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='59' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:15');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'플롯 오류.jpg','16.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/16.jpg','image/jpeg','jpg',2354295,'b9e6a34433343b8d840e22f075b799bf3afc4b52195f2e672ea51e45b327b3d2','EGBIM_QA:POST_ATTACHMENT:16','ACTIVE','2025-09-08 15:58:20','2025-09-08 15:58:20' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='60' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:16');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'이지빔 오류.png','17.png','LOCAL','/app/uploads','EGBIM_QA/attachments/17.png','image/png','png',182115,'9ea3798264732730aaa723d4643c4e59d6795da6f1ce10d4a144d8211e7d56f9','EGBIM_QA:POST_ATTACHMENT:17','ACTIVE','2025-09-08 19:15:15','2025-09-08 19:15:15' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='61' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:17');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20250910_154923538.jpg','18.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/18.jpg','image/jpeg','jpg',4877121,'721e852361cda56e5961148fc33a31b7dfa6d3cd268f78fcbfb6c6403e72835f','EGBIM_QA:POST_ATTACHMENT:18','ACTIVE','2025-09-10 15:51:33','2025-09-10 15:51:33' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='64' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:18');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'cmdengonly.png','19.png','LOCAL','/app/uploads','EGBIM_QA/attachments/19.png','image/png','png',5322,'9d8253b592101e759e2a08bb160b4fa6b65a78dad021ce1b9acb0225ca64953a','EGBIM_QA:POST_ATTACHMENT:19','ACTIVE','2025-09-11 15:30:26','2025-09-11 15:30:26' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='69' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:19');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'이지빔큐앤에이개선.png','20.png','LOCAL','/app/uploads','EGBIM_QA/attachments/20.png','image/png','png',29096,'32d10251833be4c3d45bc1f4e6d34b59cee665c05b56de7b1e639648bd42ffe7','EGBIM_QA:POST_ATTACHMENT:20','ACTIVE','2025-09-11 15:33:34','2025-09-11 15:33:34' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='69' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:20');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'인쇄하기 에러.png','21.png','LOCAL','/app/uploads','EGBIM_QA/attachments/21.png','image/png','png',100318,'6b993fc410107a0ba3fd65e9ea114ab1287f26b5e175d83a10c583cc6970268b','EGBIM_QA:POST_ATTACHMENT:21','ACTIVE','2025-09-12 14:53:18','2025-09-12 14:53:18' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='70' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:21');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'인쇄하기 정상.png','22.png','LOCAL','/app/uploads','EGBIM_QA/attachments/22.png','image/png','png',181149,'32265ec02413ac1bd77beadd8dcac0308ce2ac15625d9ffd788db18ff4de7ebb','EGBIM_QA:POST_ATTACHMENT:22','ACTIVE','2025-09-12 14:53:18','2025-09-12 14:53:18' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='70' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:22');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'캡처1.JPG','23.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/23.jpg','image/jpeg','jpg',118891,'518031574b99f80957618509c60e428904402780ab9313fe81e70bf9c9ef3309','EGBIM_QA:POST_ATTACHMENT:23','ACTIVE','2025-09-16 09:43:05','2025-09-16 09:43:05' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='76' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:23');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'003~004.평면및종단면도(금곡사사)-250911 - Standard.zip','25.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/25.zip','application/zip','zip',15763404,'b779df93f53bf81b0fa5ac7f2aae0b7b15b1d343264aba0eb714a4298c63320d','EGBIM_QA:POST_ATTACHMENT:25','ACTIVE','2025-09-19 09:41:52','2025-09-19 09:41:52' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='97' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:25');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'제목 없음.png','26.png','LOCAL','/app/uploads','EGBIM_QA/attachments/26.png','image/png','png',152283,'ae71bb484bd3451f95af6f796ab471523bb3f011841132c17d9cb4a249c32898','EGBIM_QA:POST_ATTACHMENT:26','ACTIVE','2025-09-19 09:41:52','2025-09-19 09:41:52' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='97' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:26');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20250919_153731765.png','27.png','LOCAL','/app/uploads','EGBIM_QA/attachments/27.png','image/png','png',3747,'c28cb944b58b3e178f43cbeccc8712f71e2932f84041a6cc321730051e537976','EGBIM_QA:POST_ATTACHMENT:27','ACTIVE','2025-09-19 15:43:17','2025-09-19 15:43:17' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='98' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:27');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'Resized_20250923_151823_1758608324791.jpeg','29.jpeg','LOCAL','/app/uploads','EGBIM_QA/attachments/29.jpeg','image/jpeg','jpeg',2735686,'0ccbb7ebdab327fde110fedca438496b47c8b56059f46219b146264698075583','EGBIM_QA:POST_ATTACHMENT:29','ACTIVE','2025-09-23 15:29:52','2025-09-23 15:29:52' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='106' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:29');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'04.슬래브 수정하기.zip','30.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/30.zip','application/zip','zip',1593369,'c89d558bef6e2b429f243a38c6302129bbf9c0cf2de2290999d12b357ea0e20f','EGBIM_QA:POST_ATTACHMENT:30','ACTIVE','2025-09-24 10:37:07','2025-09-24 10:37:07' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='108' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:30');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'외부참조_대덕특구 도곽.zip','31.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/31.zip','application/zip','zip',66755,'8634ebe61650a104bd4bab0a510290ee0e5e4346812eb0dcb1f41460eb21bba5','EGBIM_QA:POST_ATTACHMENT:31','ACTIVE','2025-09-24 10:39:12','2025-09-24 10:39:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='108' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:31');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'EZBIM.jpg','32.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/32.jpg','image/jpeg','jpg',1638060,'9bd17c77de3cdb111e4e1b9a5e228c6c335e01602ce42320540e3458ca514947','EGBIM_QA:POST_ATTACHMENT:32','ACTIVE','2025-09-24 17:17:13','2025-09-24 17:17:13' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='111' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:32');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2025-09-25 152205.png','33.png','LOCAL','/app/uploads','EGBIM_QA/attachments/33.png','image/png','png',304829,'04541448a57432d4b941e6beb7a1e84bb32152b44d79b36e32edcb0f9959ed5b','EGBIM_QA:POST_ATTACHMENT:33','ACTIVE','2025-09-25 15:36:12','2025-09-25 15:36:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='113' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:33');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'스크린샷 2025-09-25 155142.png','34.png','LOCAL','/app/uploads','EGBIM_QA/attachments/34.png','image/png','png',104245,'157eba9bba07878e9949fe98071edb96077739cda6660dc51e8bbcaf672e1dab','EGBIM_QA:POST_ATTACHMENT:34','ACTIVE','2025-09-25 15:52:32','2025-09-25 15:52:32' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='114' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:34');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'레지스트리.zip','35.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/35.zip','application/zip','zip',69972,'a776041c2266f4d024a29c896b8c80626984775005341de94c7b7443fa4992ae','EGBIM_QA:POST_ATTACHMENT:35','ACTIVE','2025-09-29 14:42:17','2025-09-29 14:42:17' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='47' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:35');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'(기존추가)6.3-5.zip','37.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/37.zip','application/zip','zip',1385160,'34fe420ba6f996ba9135232a6ab23e792d99ae3f82ef0efc60ff984f06891a9e','EGBIM_QA:POST_ATTACHMENT:37','ACTIVE','2025-09-29 17:21:03','2025-09-29 17:21:03' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='118' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:37');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20251001_091636675.jpg','38.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/38.jpg','image/jpeg','jpg',594266,'f9b70eae4b7fd408d3af26404c5d66bb13eaacbfd918f3dcccf2ffba7fac790e','EGBIM_QA:POST_ATTACHMENT:38','ACTIVE','2025-10-01 09:20:08','2025-10-01 09:20:08' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='126' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:38');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20251001_091636675_01.jpg','39.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/39.jpg','image/jpeg','jpg',375941,'1331b2f284a637cf91cca6a33842b4ab4af9468cc631f0ed2712c0bcd678f72c','EGBIM_QA:POST_ATTACHMENT:39','ACTIVE','2025-10-01 09:20:08','2025-10-01 09:20:08' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='126' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:39');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20251001_091636675_02.jpg','40.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/40.jpg','image/jpeg','jpg',47513,'b87e04cd48715621c6efa3d7dd32475e860a258fc06bce56f7aac32be9f27cac','EGBIM_QA:POST_ATTACHMENT:40','ACTIVE','2025-10-01 09:20:08','2025-10-01 09:20:08' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='126' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:40');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'출력시 프리트 회질저하.png','41.png','LOCAL','/app/uploads','EGBIM_QA/attachments/41.png','image/png','png',314125,'b447b953098f48865b44169a2121144804f78f05584ff345b495a7e369cf9a22','EGBIM_QA:POST_ATTACHMENT:41','ACTIVE','2025-10-01 09:20:39','2025-10-01 09:20:39' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='127' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:41');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'TEXTMATCHCOPY.jpg','43.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/43.jpg','image/jpeg','jpg',27605,'05312671eef3b5a0128f8805c8cbf8de256f36fcf1a75e5d2a512f2b4e26faf6','EGBIM_QA:POST_ATTACHMENT:43','ACTIVE','2025-10-16 09:38:42','2025-10-16 09:38:42' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='135' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:43');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'material.jpg','45.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/45.jpg','image/jpeg','jpg',699488,'33eee458ca3f9d0543d138e8e40c89ed65a07d3d7c65d1371d1633ab140ce883','EGBIM_QA:POST_ATTACHMENT:45','ACTIVE','2025-10-17 08:34:11','2025-10-17 08:34:11' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='137' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:45');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2025-10-21 104231.png','46.png','LOCAL','/app/uploads','EGBIM_QA/attachments/46.png','image/png','png',238394,'49fca16da59c672c7fd56b59e52740098f972bfb70a1fc52257f984082596a89','EGBIM_QA:POST_ATTACHMENT:46','ACTIVE','2025-10-21 10:42:43','2025-10-21 10:42:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='142' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:46');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'캡처.PNG','47.png','LOCAL','/app/uploads','EGBIM_QA/attachments/47.png','image/png','png',77533,'2e219736687c5f5f40376985cdb2baee5a8e49f46b26f263bf86463e1ebbb798','EGBIM_QA:POST_ATTACHMENT:47','ACTIVE','2025-10-21 15:18:22','2025-10-21 15:18:22' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='144' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:47');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'캡처12.PNG','48.png','LOCAL','/app/uploads','EGBIM_QA/attachments/48.png','image/png','png',22877,'d189e322372ee85b65a7f8f9129f5f297ca14a4aefff24712ab9671317051989','EGBIM_QA:POST_ATTACHMENT:48','ACTIVE','2025-10-21 15:18:22','2025-10-21 15:18:22' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='144' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:48');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20251022_091405.png','49.png','LOCAL','/app/uploads','EGBIM_QA/attachments/49.png','image/png','png',179551,'9d327b07c61830fe7774478fb6f394d8c8320ae5ae0cbd45a25aecfdeeb5241b','EGBIM_QA:POST_ATTACHMENT:49','ACTIVE','2025-10-22 09:14:44','2025-10-22 09:14:44' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='149' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:49');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20251023_095426.png','50.png','LOCAL','/app/uploads','EGBIM_QA/attachments/50.png','image/png','png',124171,'f84b63407297f045e73f9ad4694543e7863bf640194c9b49db36feafcebeade8','EGBIM_QA:POST_ATTACHMENT:50','ACTIVE','2025-10-23 09:58:30','2025-10-23 09:58:30' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='152' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:50');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'도곽 머서리부 격자 오류 2.PNG','51.png','LOCAL','/app/uploads','EGBIM_QA/attachments/51.png','image/png','png',418337,'855a1bcfb6d8fec79110fd48d0aad69b2d627498c4b2ed4ee5a7632720c5c5e5','EGBIM_QA:POST_ATTACHMENT:51','ACTIVE','2025-10-23 13:50:03','2025-10-23 13:50:03' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='153' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:51');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'도곽 머서리부 격자 오류 3.PNG','52.png','LOCAL','/app/uploads','EGBIM_QA/attachments/52.png','image/png','png',353941,'ac66cfbaef4b8c77e321fbe524c817b034776afc2c719eafd658981d87cd358b','EGBIM_QA:POST_ATTACHMENT:52','ACTIVE','2025-10-23 13:50:03','2025-10-23 13:50:03' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='153' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:52');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'도곽 모서리부 격자 오류1.PNG','53.png','LOCAL','/app/uploads','EGBIM_QA/attachments/53.png','image/png','png',154446,'d49a6bb466a14ec4de62e6b9fdaffc75a63062444af53fc7d8a6a53cb2074da1','EGBIM_QA:POST_ATTACHMENT:53','ACTIVE','2025-10-23 13:50:03','2025-10-23 13:50:03' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='153' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:53');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20251024_100329.png','54.png','LOCAL','/app/uploads','EGBIM_QA/attachments/54.png','image/png','png',846646,'8d436e0e30e5489d957a964b6dfe2eb3eaa310865f64ca7b290b6eef605d1f7d','EGBIM_QA:POST_ATTACHMENT:54','ACTIVE','2025-10-24 10:10:17','2025-10-24 10:10:17' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='155' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:54');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20251024_100340.png','55.png','LOCAL','/app/uploads','EGBIM_QA/attachments/55.png','image/png','png',662829,'0df9f04c35ed48eadc4c1199f339babdacb79405730bf2d241d5693194f2ecf5','EGBIM_QA:POST_ATTACHMENT:55','ACTIVE','2025-10-24 10:10:17','2025-10-24 10:10:17' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='155' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:55');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'캡처.JPG','56.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/56.jpg','image/jpeg','jpg',129195,'6ad49be80f978833d25e08bb0642801ad004abc070153123b4a47b14407e13e3','EGBIM_QA:POST_ATTACHMENT:56','ACTIVE','2025-10-24 11:02:43','2025-10-24 11:02:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='156' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:56');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20251024_164603.png','57.png','LOCAL','/app/uploads','EGBIM_QA/attachments/57.png','image/png','png',378048,'dacf54d0889a5ca3bafde49415c254af0c6798def7f373c29d5e207fce91010e','EGBIM_QA:POST_ATTACHMENT:57','ACTIVE','2025-10-24 16:48:45','2025-10-24 16:48:45' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='155' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:57');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20251024_164813.png','58.png','LOCAL','/app/uploads','EGBIM_QA/attachments/58.png','image/png','png',942771,'badb9dfdf5f918d790291170211d9e9f7f1935f62021fc457d23ee5bb57a17cd','EGBIM_QA:POST_ATTACHMENT:58','ACTIVE','2025-10-24 16:48:45','2025-10-24 16:48:45' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='155' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:58');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'eg-bim 설치오류.PNG','60.png','LOCAL','/app/uploads','EGBIM_QA/attachments/60.png','image/png','png',43904,'fd1b9b58e85504a163dfe65213e68ff1cbc2482b73d5476af53648a928944f3d','EGBIM_QA:POST_ATTACHMENT:60','ACTIVE','2025-11-04 08:37:43','2025-11-04 08:37:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='173' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:60');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'Desktop.zip','63.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/63.zip','application/zip','zip',35887,'24277d108e70dc96ee2701c5951e675ce9e4f9686ead77d717dc4bcc225d73fe','EGBIM_QA:POST_ATTACHMENT:63','ACTIVE','2025-11-04 10:39:39','2025-11-04 10:39:39' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='178' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:63');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'cmdeng 오류.png','64.png','LOCAL','/app/uploads','EGBIM_QA/attachments/64.png','image/png','png',92965,'2414d305ccf20f1744cad78154721f5ad5723cd8957579ff23596d36670d3609','EGBIM_QA:POST_ATTACHMENT:64','ACTIVE','2025-11-05 10:32:58','2025-11-05 10:32:58' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='185' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:64');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'04 [Nose부] 교대 계획.dwg','76.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/76.dwg','image/vnd.dwg','dwg',85120,'cb7f598bc613a225e592aa2fd7f6a5c390717b8266ef56b8db32472810bf1328','EGBIM_QA:POST_ATTACHMENT:76','ACTIVE','2025-11-12 16:07:32','2025-11-12 16:07:32' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='200' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:76');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'낱 장 출력 위치도.pdf','78.pdf','LOCAL','/app/uploads','EGBIM_QA/attachments/78.pdf','application/pdf','pdf',10510536,'3fb5f9954e1b34e8594660a4bcc78fb651c227acfd623b830920058274505f08','EGBIM_QA:POST_ATTACHMENT:78','ACTIVE','2025-11-13 10:06:12','2025-11-13 10:06:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='203' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:78');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'다중 출력 위치도.pdf','79.pdf','LOCAL','/app/uploads','EGBIM_QA/attachments/79.pdf','application/pdf','pdf',8231932,'1e73fd31729ede3d95d04f18194d63f095646cc9e099e38aaa5a46fc4fd08141','EGBIM_QA:POST_ATTACHMENT:79','ACTIVE','2025-11-13 10:06:12','2025-11-13 10:06:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='203' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:79');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'캡처.JPG','80.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/80.jpg','image/jpeg','jpg',47120,'8da142fd6d2d724af36393a05085901d0def705f89c6a0760fcac9815f7fac5d','EGBIM_QA:POST_ATTACHMENT:80','ACTIVE','2025-11-14 09:28:46','2025-11-14 09:28:46' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='207' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:80');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'1.1.3 평면 및 종단면도 ( 이설도로 )_251113.dwg','81.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/81.dwg','image/vnd.dwg','dwg',3348687,'d2dc2b488aef495e6cca22863eceee47dc195c6d53f55b5cd282436ac95fbd86','EGBIM_QA:POST_ATTACHMENT:81','ACTIVE','2025-11-14 10:36:07','2025-11-14 10:36:07' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='209' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:81');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'2025-11-21 15 59 21-ole 이미지 반전.png','82.png','LOCAL','/app/uploads','EGBIM_QA/attachments/82.png','image/png','png',494588,'3a47c90b6f602d40ca88ef1140a7111be3fbf6b49f0a4030df84befd23d5dd4d','EGBIM_QA:POST_ATTACHMENT:82','ACTIVE','2025-11-21 16:03:28','2025-11-21 16:03:28' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='217' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:82');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'2025-11-21 15 59 22-ole 이미지 반전.png','83.png','LOCAL','/app/uploads','EGBIM_QA/attachments/83.png','image/png','png',544857,'27e52f660ab99b026a9a673d278f30ea7425ba91071475c1daa0fe473adcc458','EGBIM_QA:POST_ATTACHMENT:83','ACTIVE','2025-11-21 16:03:28','2025-11-21 16:03:28' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='217' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:83');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'C0010201-002 표준횡단.dwg','84.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/84.dwg','image/vnd.dwg','dwg',3570944,'15212fdae33a06a7bcfcc8a17bd03a20e4a35ac58668e55a3247ad5a60adfad1','EGBIM_QA:POST_ATTACHMENT:84','ACTIVE','2025-11-21 16:03:28','2025-11-21 16:03:28' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='217' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:84');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'C0010201-001 표준횡단.dwg','85.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/85.dwg','image/vnd.dwg','dwg',3409236,'75874416e7c735de0affa628d9d318ee05ae26bee7eb1d6215db538efd5a20d2','EGBIM_QA:POST_ATTACHMENT:85','ACTIVE','2025-11-21 16:03:28','2025-11-21 16:03:28' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='217' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:85');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'오류 화면.jpg','86.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/86.jpg','image/jpeg','jpg',59594,'022bfe8468ea9370148a6527eec483d0e568b197e8d315f2c42bdc2b9f47212e','EGBIM_QA:POST_ATTACHMENT:86','ACTIVE','2025-11-24 15:41:51','2025-11-24 15:41:51' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='219' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:86');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'drpipe.zip','87.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/87.zip','application/zip','zip',339605,'652da3d75733f34b4fffe995674ea1f32746f970b959ee433383572eb8b9e3a3','EGBIM_QA:POST_ATTACHMENT:87','ACTIVE','2025-11-26 09:06:55','2025-11-26 09:06:55' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='220' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:87');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'재료표.GIF','90.gif','LOCAL','/app/uploads','EGBIM_QA/attachments/90.gif','image/gif','gif',24348,'a8920bb763f529e2a06913deadac9af5f783b0dd8792377cd53294e00b8ffffe','EGBIM_QA:POST_ATTACHMENT:90','ACTIVE','2025-12-02 10:36:45','2025-12-02 10:36:45' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='226' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:90');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'레지스트리.reg','91.reg','LOCAL','/app/uploads','EGBIM_QA/attachments/91.reg','application/octet-stream','reg',152756,'2ee19ea157f5cb6c477ab8442b79c6fd72749ebe8e881ec05780f178515c8007','EGBIM_QA:POST_ATTACHMENT:91','ACTIVE','2025-12-05 10:22:15','2025-12-05 10:22:15' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='230' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:91');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'투명도 테스트.zip','92.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/92.zip','application/zip','zip',28825,'ab89166189b69fdc5fe9fbec4e70964121e5762a7d4fd0c7283bb1b26462ea1a','EGBIM_QA:POST_ATTACHMENT:92','ACTIVE','2025-12-05 10:22:15','2025-12-05 10:22:15' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='230' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:92');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'251204_법성홍농 노선도 - Standard.zip','93.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/93.zip','application/zip','zip',6360618,'8cc0613a78533317337bfc46d06fd61fe8a2569039c43f9bf13928d8e6625b10','EGBIM_QA:POST_ATTACHMENT:93','ACTIVE','2025-12-05 13:52:23','2025-12-05 13:52:23' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='232' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:93');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'251205-PLOT 에러.png','94.png','LOCAL','/app/uploads','EGBIM_QA/attachments/94.png','image/png','png',27223,'073680dd4a3e06a61c8857f53b8afb775669c0c951a0308da147a025f852f328','EGBIM_QA:POST_ATTACHMENT:94','ACTIVE','2025-12-05 15:04:12','2025-12-05 15:04:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='234' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:94');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'접근수로굴착.png','95.png','LOCAL','/app/uploads','EGBIM_QA/attachments/95.png','image/png','png',72253,'10a212e1394885fafee068d6c3f521f43d34eb988a1fb735d22253bfdda74c2e','EGBIM_QA:POST_ATTACHMENT:95','ACTIVE','2025-12-08 08:31:24','2025-12-08 08:31:24' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='235' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:95');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'251209-APPLOAD 삭제안됨.png','96.png','LOCAL','/app/uploads','EGBIM_QA/attachments/96.png','image/png','png',24197,'de32b3cc67cceabccc0c34e420c79688e00b4d81ecf3b8d13bafaaf87d9fcf86','EGBIM_QA:POST_ATTACHMENT:96','ACTIVE','2025-12-09 15:56:16','2025-12-09 15:56:16' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='236' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:96');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'캡처.JPG','97.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/97.jpg','image/jpeg','jpg',100954,'b2f2635be4ae5eff14e2f3e637e8b91a60f2ad7336106e06e4fac8f1aca99d56','EGBIM_QA:POST_ATTACHMENT:97','ACTIVE','2025-12-10 13:13:47','2025-12-10 13:13:47' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='238' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:97');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'K-005.jpg','98.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/98.jpg','image/jpeg','jpg',169787,'455f971e7ba45b31602080f6e5b350400beb0bbb699e2f17a1b02a4a6cf9a4c9','EGBIM_QA:POST_ATTACHMENT:98','ACTIVE','2025-12-17 09:11:48','2025-12-17 09:11:48' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='244' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:98');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'K-006.jpg','99.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/99.jpg','image/jpeg','jpg',103420,'ffb3c5281d6fe6ff1f280cf3cd784c856c435de40c29502011fdd250aa4b79b6','EGBIM_QA:POST_ATTACHMENT:99','ACTIVE','2025-12-17 09:11:48','2025-12-17 09:11:48' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='244' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:99');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'종전선형_종점부 R380.v2.dwg','100.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/100.dwg','image/vnd.dwg','dwg',484386,'ccb4ab92d69bd0deafc340ce883aae2466daf9236518172096f86b1770573eef','EGBIM_QA:POST_ATTACHMENT:100','ACTIVE','2025-12-19 09:23:01','2025-12-19 09:23:01' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='246' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:100');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'Drawing2.dwg','101.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/101.dwg','image/vnd.dwg','dwg',21094,'16cb39a5edfda45cefbc4ca787a597c343cf89d32e6c30da5437ba46b9c2c87e','EGBIM_QA:POST_ATTACHMENT:101','ACTIVE','2025-12-30 14:40:50','2025-12-30 14:40:50' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='252' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:101');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'레지스트리.reg','102.reg','LOCAL','/app/uploads','EGBIM_QA/attachments/102.reg','application/octet-stream','reg',1097690,'81df65dd872837757177d21350b839dd5c1e9faa26afef2ef25267d7e550ef83','EGBIM_QA:POST_ATTACHMENT:102','ACTIVE','2025-12-31 10:37:42','2025-12-31 10:37:42' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='252' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:102');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'251229 계획평면도.zip','103.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/103.zip','application/zip','zip',10897836,'918a2b50758b902dcd771af225cbebc535c39b3ef56e8e8d8774c8f77998d58f','EGBIM_QA:POST_ATTACHMENT:103','ACTIVE','2025-12-31 13:35:43','2025-12-31 13:35:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='256' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:103');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'그리미 도곽인식.png','104.png','LOCAL','/app/uploads','EGBIM_QA/attachments/104.png','image/png','png',705433,'a993a0ffba58877c0301176884f5413605c23c935748bd09daf971d4212343e1','EGBIM_QA:POST_ATTACHMENT:104','ACTIVE','2025-12-31 13:35:43','2025-12-31 13:35:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='256' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:104');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'꾸러미 도곽미인식.png','105.png','LOCAL','/app/uploads','EGBIM_QA/attachments/105.png','image/png','png',230175,'9f0586b0dc978ec2f21a8b630c24f4e8e5469d62406ea4811dd85615aadf1395','EGBIM_QA:POST_ATTACHMENT:105','ACTIVE','2025-12-31 13:35:43','2025-12-31 13:35:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='256' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:105');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'Drawing1.dwg','106.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/106.dwg','image/vnd.dwg','dwg',4598337,'5b2b55b3848b3f3d6c279d0ecc413107c33ab0159f15a2d8486380565b734e93','EGBIM_QA:POST_ATTACHMENT:106','ACTIVE','2025-12-31 14:15:31','2025-12-31 14:15:31' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='257' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:106');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'연결형태1.jpg','107.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/107.jpg','image/jpeg','jpg',254537,'1ecb7caf102cb691b7f520b38f08596be82c5e92e6003ca4cb59a26e40028da3','EGBIM_QA:POST_ATTACHMENT:107','ACTIVE','2026-01-06 10:19:05','2026-01-06 10:19:05' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='259' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:107');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'연결형태2.jpg','108.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/108.jpg','image/jpeg','jpg',253888,'e70f25e79b4f002ae5501d419846b1d3690f9140014b46a065830b51b5571e6f','EGBIM_QA:POST_ATTACHMENT:108','ACTIVE','2026-01-06 10:19:05','2026-01-06 10:19:05' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='259' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:108');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'연결형태3.jpg','109.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/109.jpg','image/jpeg','jpg',255501,'8d63f90f26d6bbc543f12c5b9efeae2260e0641d178022887f0e8954516db10c','EGBIM_QA:POST_ATTACHMENT:109','ACTIVE','2026-01-06 10:19:05','2026-01-06 10:19:05' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='259' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:109');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'대산당진(2공구) 사업구역경계.dxf','110.dxf','LOCAL','/app/uploads','EGBIM_QA/attachments/110.dxf','image/vnd.dxf','dxf',7862979,'0aa7ca332109c492430755e958bb3dafc474f90cf673d6c288770bf95ed215fb','EGBIM_QA:POST_ATTACHMENT:110','ACTIVE','2026-01-06 14:16:51','2026-01-06 14:16:51' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='259' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:110');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'Water Storage Longitudinal & Cross Sections.dwg','111.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/111.dwg','image/vnd.dwg','dwg',4280504,'7516d4a2efff89caae9bda7b35c7484996abd89c5110de7e6497fa6f06d7f7f6','EGBIM_QA:POST_ATTACHMENT:111','ACTIVE','2026-01-08 17:01:58','2026-01-08 17:01:58' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='265' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:111');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260112_170637.jpg','112.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/112.jpg','image/jpeg','jpg',35685,'e757b8f5980ef80dcd070083eeef1bf151c4aa7ca051868085d93d649797d73d','EGBIM_QA:POST_ATTACHMENT:112','ACTIVE','2026-01-12 17:07:43','2026-01-12 17:07:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='268' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:112');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna.reg','113.reg','LOCAL','/app/uploads','EGBIM_QA/attachments/113.reg','application/octet-stream','reg',1570848,'c1ca162c3fec26a1da027836241c492dd4be6a057395ea24d819ca4b92fce125','EGBIM_QA:POST_ATTACHMENT:113','ACTIVE','2026-01-23 09:51:29','2026-01-23 09:51:29' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='271' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:113');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'선스타일.dwg','114.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/114.dwg','image/vnd.dwg','dwg',38956,'aa7fc34db90647c45599c859694011d40224bb401328a6791e364dbfa05db191','EGBIM_QA:POST_ATTACHMENT:114','ACTIVE','2026-01-23 09:51:29','2026-01-23 09:51:29' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='271' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:114');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'스크린샷 2026-01-26 163117.png','115.png','LOCAL','/app/uploads','EGBIM_QA/attachments/115.png','image/png','png',190854,'2e89948f9f7d7a639838b9bd11c457563215214b9f8cb376efe272d9d7aa1f4b','EGBIM_QA:POST_ATTACHMENT:115','ACTIVE','2026-01-26 16:33:57','2026-01-26 16:33:57' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='272' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:115');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'01.외관조사망도_석문국가산단 배수갑문(2025-상반기).dwg','116.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/116.dwg','image/vnd.dwg','dwg',6059813,'cae1942f52eedbd92510b7c2568fc12230eb1622ddf8cc09f3dd2b7f726cbd4d','EGBIM_QA:POST_ATTACHMENT:116','ACTIVE','2026-01-26 16:39:12','2026-01-26 16:39:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='272' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:116');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'04 부대공.zip','117.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/117.zip','application/zip','zip',3622415,'3c8efc54ecf89e5056e123fb02a73d643f6607656a32ee541edb5ee40fcf200e','EGBIM_QA:POST_ATTACHMENT:117','ACTIVE','2026-02-02 17:39:17','2026-02-02 17:39:17' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='276' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:117');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'01.위치도(동량~산척)_착수보고 PPT-배치1_캐드 플롯.jpg','118.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/118.jpg','image/jpeg','jpg',5412828,'b4e5e7c11ecc8a431263bb98305584295b8c297a7d1cffd62644590e55c121af','EGBIM_QA:POST_ATTACHMENT:118','ACTIVE','2026-02-03 13:30:29','2026-02-03 13:30:29' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='277' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:118');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'01.위치도(동량~산척)_착수보고 PPT-배치1_이지빔.jpg','119.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/119.jpg','image/jpeg','jpg',9979649,'ba29439563bd83710ec96786e0295ac8008041beaca3d2a4ee324e6003623346','EGBIM_QA:POST_ATTACHMENT:119','ACTIVE','2026-02-03 13:30:29','2026-02-03 13:30:29' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='277' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:119');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'모델기반 11+600~12+540_SavedWithErrors.dwg','120.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/120.dwg','image/vnd.dwg','dwg',9081562,'9de915baab97aabc179173fc7113ad0a0f0437d1b34ba14274a79340820ae049','EGBIM_QA:POST_ATTACHMENT:120','ACTIVE','2026-02-03 14:59:21','2026-02-03 14:59:21' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='278' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:120');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'모델기반 11+600~12+540_SavedWithErrors1.dwg','121.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/121.dwg','image/vnd.dwg','dwg',9081562,'c19979b840d1e56009c3fc8d3303b32e6e9b73b11218b1d2f9d14c2cfbc6ac69','EGBIM_QA:POST_ATTACHMENT:121','ACTIVE','2026-02-03 14:59:21','2026-02-03 14:59:21' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='278' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:121');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20260203_153624358.png','122.png','LOCAL','/app/uploads','EGBIM_QA/attachments/122.png','image/png','png',258015,'49db96325aca81ac14edd99e5396dfa0abcd172c9129f3fe9ec4694aed75a7a1','EGBIM_QA:POST_ATTACHMENT:122','ACTIVE','2026-02-03 15:37:19','2026-02-03 15:37:19' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='279' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:122');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'[도면] BIM_대호지교 시점부(A1) 배근도.dwg','123.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/123.dwg','image/vnd.dwg','dwg',3114270,'23fee231a2a324b9d7d239e02fcc98ea2ad3f24b9efc7755a55a555a45186ae8','EGBIM_QA:POST_ATTACHMENT:123','ACTIVE','2026-02-11 09:47:45','2026-02-11 09:47:45' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='287' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:123');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260211_113953.png','124.png','LOCAL','/app/uploads','EGBIM_QA/attachments/124.png','image/png','png',754900,'8f2d3caf1a31042a78984203b5be7d0de36f7fffe139a258eeb3063c8aafda17','EGBIM_QA:POST_ATTACHMENT:124','ACTIVE','2026-02-11 11:41:14','2026-02-11 11:41:14' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='289' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:124');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'동산 소하천 보고용 판넬_20250623.dwg','125.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/125.dwg','image/vnd.dwg','dwg',7069368,'e264e4b03765b931d33f5cdc731b5f801b2e9d497397f79a19ca33ac34a796d0','EGBIM_QA:POST_ATTACHMENT:125','ACTIVE','2026-02-11 11:41:14','2026-02-11 11:41:14' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='289' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:125');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'충북도_5000-Layout 01_이지빔 플롯.pdf','126.pdf','LOCAL','/app/uploads','EGBIM_QA/attachments/126.pdf','application/pdf','pdf',13127850,'c04950bf5fd4fcbecb3f69011cd314dc4e0e6b19afba4d8689ec8a9c589ebedb','EGBIM_QA:POST_ATTACHMENT:126','ACTIVE','2026-02-13 20:16:12','2026-02-13 20:16:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='294' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:126');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'충북도_5000 Layout 01_캐드 플롯.pdf','127.pdf','LOCAL','/app/uploads','EGBIM_QA/attachments/127.pdf','application/pdf','pdf',20443647,'41f093151ab26b03ffd313cc5278b0e41b76cd808ec234902bea632dbc54319b','EGBIM_QA:POST_ATTACHMENT:127','ACTIVE','2026-02-13 20:16:12','2026-02-13 20:16:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='294' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:127');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'라이센스 만료.png','128.png','LOCAL','/app/uploads','EGBIM_QA/attachments/128.png','image/png','png',317079,'3f46901ecc0389adc2c9c0e5f9a1d4e7f115a32c259ba7bb79c4d34a85048b3e','EGBIM_QA:POST_ATTACHMENT:128','ACTIVE','2026-02-23 11:01:34','2026-02-23 11:01:34' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='297' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:128');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'OLE파일 뒤집힘.png','129.png','LOCAL','/app/uploads','EGBIM_QA/attachments/129.png','image/png','png',106954,'131a192c3562ab7af38b8c6bca43a8b78e2e0e0a59845beca851a0b9b42b0c13','EGBIM_QA:POST_ATTACHMENT:129','ACTIVE','2026-02-24 14:59:29','2026-02-24 14:59:29' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='298' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:129');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'1.JPG','130.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/130.jpg','image/jpeg','jpg',30646,'021798720afb973ef9f8e476f5943ddc6f465d68f058831041de9cf7a361b274','EGBIM_QA:POST_ATTACHMENT:130','ACTIVE','2026-02-24 20:17:01','2026-02-24 20:17:01' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='299' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:130');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'2.JPG','131.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/131.jpg','image/jpeg','jpg',48756,'efeed26af06ac86da0b4782b556e155870a0e186428ef5e74c412b99faac4793','EGBIM_QA:POST_ATTACHMENT:131','ACTIVE','2026-02-24 20:17:01','2026-02-24 20:17:01' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='299' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:131');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'Capture_2026_0304_085418.jpeg','132.jpeg','LOCAL','/app/uploads','EGBIM_QA/attachments/132.jpeg','image/jpeg','jpeg',15240,'70c38095a169c89ae98b0c5664ee21043889380b1b0a8d466c76274c2f9d5096','EGBIM_QA:POST_ATTACHMENT:132','ACTIVE','2026-03-04 10:58:09','2026-03-04 10:58:09' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='307' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:132');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'73-1.표지판삽도_ver1.0 (1)-Model.pdf','133.pdf','LOCAL','/app/uploads','EGBIM_QA/attachments/133.pdf','application/pdf','pdf',65864,'b0b2ae1b276b846472089515c9a94b413df29b94d1d63b0a87971680b9db7157','EGBIM_QA:POST_ATTACHMENT:133','ACTIVE','2026-03-04 13:57:03','2026-03-04 13:57:03' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='308' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:133');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'SAMPLE.dwg','134.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/134.dwg','image/vnd.dwg','dwg',364583,'e1c5f6b6e05df5c27917722ce935fec2caf516a8b64dadf1ada3b9414162c4e5','EGBIM_QA:POST_ATTACHMENT:134','ACTIVE','2026-03-09 11:31:58','2026-03-09 11:31:58' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='314' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:134');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'xr_5000도 - Standard.zip','135.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/135.zip','application/zip','zip',23926222,'05674a08d619826b89654535bee3bf3b7b9e21241309d447bd70ad7505e4e2e4','EGBIM_QA:POST_ATTACHMENT:135','ACTIVE','2026-03-09 13:43:50','2026-03-09 13:43:50' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='315' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:135');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'221.reg','136.reg','LOCAL','/app/uploads','EGBIM_QA/attachments/136.reg','application/octet-stream','reg',1659696,'52e33ed1fc8c9e89e1220cad80a8b4b5599825440599a91db9ecae07615671b4','EGBIM_QA:POST_ATTACHMENT:136','ACTIVE','2026-03-09 15:08:52','2026-03-09 15:08:52' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='314' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:136');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'image01.png','137.png','LOCAL','/app/uploads','EGBIM_QA/attachments/137.png','image/png','png',76000,'c4c57b7ec1eb76eb4b568c37102b6cfc7a4130f7bda0784a6946bcc9311c354b','EGBIM_QA:POST_ATTACHMENT:137','ACTIVE','2026-03-10 10:50:00','2026-03-10 10:50:00' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='320' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:137');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'오류.JPG','138.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/138.jpg','image/jpeg','jpg',15771,'958b17b03737d72f71354a3c58efc183853c7b539d8aabd59ca484f838076190','EGBIM_QA:POST_ATTACHMENT:138','ACTIVE','2026-03-10 11:40:06','2026-03-10 11:40:06' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='321' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:138');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'오류-2.JPG','139.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/139.jpg','image/jpeg','jpg',21835,'e94f71b21a6477be83c0ab698d85b638135a9fd946957ecb0f44928a4554c4f4','EGBIM_QA:POST_ATTACHMENT:139','ACTIVE','2026-03-10 11:40:06','2026-03-10 11:40:06' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='321' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:139');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'[남양주시] 남양주왕숙2 공공주택지구(4326).dxf','140.dxf','LOCAL','/app/uploads','EGBIM_QA/attachments/140.dxf','image/vnd.dxf','dxf',43114,'bac090501bf2c8a409a1b380b6f497db42351aa1fbc58df4568e280f62ad6247','EGBIM_QA:POST_ATTACHMENT:140','ACTIVE','2026-03-11 13:47:21','2026-03-11 13:47:21' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='327' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:140');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'경계선 화면표시 왜곡.png','141.png','LOCAL','/app/uploads','EGBIM_QA/attachments/141.png','image/png','png',140235,'7ebb7bd1ba03e94a5c55720701e464ab31129917e592149a86d54770f25b7988','EGBIM_QA:POST_ATTACHMENT:141','ACTIVE','2026-03-11 13:47:21','2026-03-11 13:47:21' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='327' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:141');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'캡처.JPG','142.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/142.jpg','image/jpeg','jpg',97553,'adb894bbc2d9b8d142df2c4a7bed90148eb29aaf7424e46b78e656f704228c15','EGBIM_QA:POST_ATTACHMENT:142','ACTIVE','2026-03-12 09:52:15','2026-03-12 09:52:15' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='330' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:142');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'#위치도 - Standard.zip','144.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/144.zip','application/zip','zip',19107361,'3face2ed58a068c51f97fb9dba02edb5ef35e99280ea1344ee41b7e86286a69c','EGBIM_QA:POST_ATTACHMENT:144','ACTIVE','2026-03-18 10:53:36','2026-03-18 10:53:36' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='337' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:144');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20260319_145034264.jpg','145.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/145.jpg','image/jpeg','jpg',378049,'79dc1a8a72a3d0f9a4ba6cdcbf39b09e9f84a6b557c27e0246d5be0545ccbc44','EGBIM_QA:POST_ATTACHMENT:145','ACTIVE','2026-03-19 15:02:41','2026-03-19 15:02:41' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='338' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:145');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20260319_145034264_01.jpg','146.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/146.jpg','image/jpeg','jpg',585362,'e8ca291802ff49ed6e9ea5a824431d79104f5ad3288cd08f431a2d8c21a0f1db','EGBIM_QA:POST_ATTACHMENT:146','ACTIVE','2026-03-19 15:02:41','2026-03-19 15:02:41' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='338' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:146');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'첨부사진1.jpg','147.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/147.jpg','image/jpeg','jpg',6617605,'841698df6e91f4230e34513ea27109b33c239cebf390572afccf7bb58983e9e3','EGBIM_QA:POST_ATTACHMENT:147','ACTIVE','2026-03-19 15:43:11','2026-03-19 15:43:11' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='339' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:147');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'첨부사진2.jpg','148.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/148.jpg','image/jpeg','jpg',6754195,'0d04863f932fae8df98a10f7b2b18e3f02d7079e2797fac0dd3f4139e83811d8','EGBIM_QA:POST_ATTACHMENT:148','ACTIVE','2026-03-19 15:43:11','2026-03-19 15:43:11' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='339' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:148');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'첨부사진3.jpg','149.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/149.jpg','image/jpeg','jpg',7161806,'c86750d6bb5f705b8a31116934e3d68882562b85cafb19989ea85d562f00a5f2','EGBIM_QA:POST_ATTACHMENT:149','ACTIVE','2026-03-19 15:43:11','2026-03-19 15:43:11' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='339' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:149');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'1111.jpg','150.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/150.jpg','image/jpeg','jpg',941277,'144da3eb2d1689de5ebbd8ac2cee8fad55378720d402b133b0051c7c61247d3b','EGBIM_QA:POST_ATTACHMENT:150','ACTIVE','2026-03-20 09:27:49','2026-03-20 09:27:49' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='340' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:150');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'R1 단축키.reg','151.reg','LOCAL','/app/uploads','EGBIM_QA/attachments/151.reg','application/octet-stream','reg',492242,'92f717665a024917e2a557fdbd6962c7f648a45e09c49bc1a27b931385dbf9d8','EGBIM_QA:POST_ATTACHMENT:151','ACTIVE','2026-03-23 10:06:36','2026-03-23 10:06:36' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='343' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:151');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'R1 단축키.hwp','152.hwp','LOCAL','/app/uploads','EGBIM_QA/attachments/152.hwp','application/x-hwp','hwp',95744,'727f7ace62982fcfaba2e9277927787307e888c544a395bbf06770de91ec090e','EGBIM_QA:POST_ATTACHMENT:152','ACTIVE','2026-03-23 10:06:36','2026-03-23 10:06:36' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='343' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:152');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'사진1.png','153.png','LOCAL','/app/uploads','EGBIM_QA/attachments/153.png','image/png','png',147920,'a3d98fac50a4c07676cffe87dc6f7a2b9b17964685d3092b14902c8f3836368e','EGBIM_QA:POST_ATTACHMENT:153','ACTIVE','2026-03-25 14:01:47','2026-03-25 14:01:47' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='347' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:153');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'사진2.png','154.png','LOCAL','/app/uploads','EGBIM_QA/attachments/154.png','image/png','png',149296,'471d7341ca8afc0d43eb90538b686bac56c151d228838e1a5e15f5ecff99d591','EGBIM_QA:POST_ATTACHMENT:154','ACTIVE','2026-03-25 14:01:47','2026-03-25 14:01:47' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='347' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:154');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260401_150953.jpg','156.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/156.jpg','image/jpeg','jpg',863604,'22ded1013f48745ce1b47223a6ffdcd1909dbb241eebf040e65c82c0705575ce','EGBIM_QA:POST_ATTACHMENT:156','ACTIVE','2026-04-01 15:10:22','2026-04-01 15:10:22' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='352' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:156');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'장제로 측량현황도(2구간)_230612F(측량보완).dwg','157.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/157.dwg','image/vnd.dwg','dwg',3436308,'a78606f1c9a5e360417bb53a513e94ae32fee354e039ef7f0e3dd147627aeaf8','EGBIM_QA:POST_ATTACHMENT:157','ACTIVE','2026-04-02 09:49:46','2026-04-02 09:49:46' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='354' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:157');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260403114033.jpg','158.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/158.jpg','image/jpeg','jpg',124084,'1f152bcf81ac58129532124f2827e5612844a1f6fbfee13d9c6c0c22be145ab6','EGBIM_QA:POST_ATTACHMENT:158','ACTIVE','2026-04-03 11:41:04','2026-04-03 11:41:04' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='355' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:158');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'Drawing1.dwg','159.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/159.dwg','image/vnd.dwg','dwg',76800,'2926f7e37e6e07fbd145741b1f75cb944b1e746b7f2b45cd06b9553b61e695da','EGBIM_QA:POST_ATTACHMENT:159','ACTIVE','2026-04-03 11:41:23','2026-04-03 11:41:23' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='355' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:159');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'에러 화면 캡쳐.GIF','160.gif','LOCAL','/app/uploads','EGBIM_QA/attachments/160.gif','image/gif','gif',48199,'a35e0a1036123fc14cd67e92e3ac49c6886f15f42533e8bee17c5fa720e275b8','EGBIM_QA:POST_ATTACHMENT:160','ACTIVE','2026-04-13 11:21:58','2026-04-13 11:21:58' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='363' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:160');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'pl오류.dwg','161.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/161.dwg','image/vnd.dwg','dwg',9432604,'05f3690fef35db2635ea0ed3e39085e7ce29f155a3805d317849e33fe6ca006b','EGBIM_QA:POST_ATTACHMENT:161','ACTIVE','2026-04-14 09:21:38','2026-04-14 09:21:38' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='365' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:161');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'취수통관 일반도.dwg','162.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/162.dwg','image/vnd.dwg','dwg',7338797,'3238a580f95363c395d8083c57a8b9814103ee86180bccb540a58c918c3b39af','EGBIM_QA:POST_ATTACHMENT:162','ACTIVE','2026-04-15 16:21:47','2026-04-15 16:21:47' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='370' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:162');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'FIXVPORT.lsp','163.lsp','LOCAL','/app/uploads','EGBIM_QA/attachments/163.lsp','application/octet-stream','lsp',1550,'15121c1776ef51f3cc46067009d8aede5989b96c968fb02ca185c34c06ad96f1','EGBIM_QA:POST_ATTACHMENT:163','ACTIVE','2026-04-16 13:29:18','2026-04-16 13:29:18' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='370' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:163');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'플롯 투명도 미적용.jpg','164.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/164.jpg','image/jpeg','jpg',6383923,'1293ea295d902ceff0c22d7cc1bc5681b45c7f5e03a0ee4a933ac765b2812221','EGBIM_QA:POST_ATTACHMENT:164','ACTIVE','2026-04-17 14:10:11','2026-04-17 14:10:11' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='374' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:164');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'플롯 투명도 적용.jpg','165.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/165.jpg','image/jpeg','jpg',6474066,'1cce8342bdb8807a694ae929bf8426577d2c6d814db538bc7dde910434ad1b59','EGBIM_QA:POST_ATTACHMENT:165','ACTIVE','2026-04-17 14:10:11','2026-04-17 14:10:11' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='374' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:165');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'객체스냅 잔상오류.JPG','166.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/166.jpg','image/jpeg','jpg',36113,'0ad5fed6e868621f9103c8b5636cb44a6109517b541fdaa746403a272739920f','EGBIM_QA:POST_ATTACHMENT:166','ACTIVE','2026-04-17 17:15:06','2026-04-17 17:15:06' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='375' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:166');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'스크린샷 2026-04-21 095747.png','167.png','LOCAL','/app/uploads','EGBIM_QA/attachments/167.png','image/png','png',14989,'42e0aeb8b9858d64daec4098f74e35be1fc22efb7699cae002a9220276d031f7','EGBIM_QA:POST_ATTACHMENT:167','ACTIVE','2026-04-21 09:59:46','2026-04-21 09:59:46' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='376' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:167');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'[1.4.0.0.P.VC16.x64.RF111][AccessViolation][atio6axx.dll][7ffe5bccd1a4][2026-04-21][10.12.35].zip','168.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/168.zip','application/zip','zip',530581,'00ed486bb01822eb2f8a7d881b2d9c9f49003898521cfed30852d1d627c3963c','EGBIM_QA:POST_ATTACHMENT:168','ACTIVE','2026-04-21 19:18:36','2026-04-21 19:18:36' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='378' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:168');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'260424_지하차도_형상기획_수정.dwg','169.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/169.dwg','image/vnd.dwg','dwg',1276553,'83cb31161686eaa7cfb2822172ffb83a2340b501cbe1ed65e2d0ffb8881c7183','EGBIM_QA:POST_ATTACHMENT:169','ACTIVE','2026-04-24 11:44:15','2026-04-24 11:44:15' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='379' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:169');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'coordinates export 명령어 오류.png','170.png','LOCAL','/app/uploads','EGBIM_QA/attachments/170.png','image/png','png',4560,'506fc8515bf3170710c72438e5d16cd7431040ac11d05d90ab9183ce3d429c15','EGBIM_QA:POST_ATTACHMENT:170','ACTIVE','2026-04-27 14:29:45','2026-04-27 14:29:45' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='382' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:170');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'삽도_항만1.dwg','171.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/171.dwg','image/vnd.dwg','dwg',804450,'ac88121fe5c0f68ab61fed22844ddf73cfcdec9bb749ed76f0ea10f8a1cac671','EGBIM_QA:POST_ATTACHMENT:171','ACTIVE','2026-04-27 15:20:23','2026-04-27 15:20:23' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='383' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:171');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'EG-BIM 오류 사진.JPG','172.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/172.jpg','image/jpeg','jpg',73973,'b05e3e850a2bca6ed1a50252dfe0ba87d2e45cbe4b690821388ea481d86d4b89','EGBIM_QA:POST_ATTACHMENT:172','ACTIVE','2026-05-13 16:47:08','2026-05-13 16:47:08' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='389' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:172');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화목나들목-EGBIM 오류보고용.dwg','175.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/175.dwg','image/vnd.dwg','dwg',77343,'40237268afeabcfaeee6951c656468f9dc4febb9c8e98226a9bf6da5181146c2','EGBIM_QA:POST_ATTACHMENT:175','ACTIVE','2026-05-13 17:20:58','2026-05-13 17:20:58' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='390' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:175');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화목나들목-EGBIM 오류보고용.dwg','176.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/176.dwg','image/vnd.dwg','dwg',77343,'40237268afeabcfaeee6951c656468f9dc4febb9c8e98226a9bf6da5181146c2','EGBIM_QA:POST_ATTACHMENT:176','ACTIVE','2026-05-13 17:21:39','2026-05-13 17:21:39' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='390' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:176');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'GETIP_98.lsp','177.lsp','LOCAL','/app/uploads','EGBIM_QA/attachments/177.lsp','application/octet-stream','lsp',165924,'27e6e136508a7cb59e27a5de5e381b16953c7e59e4113b3e63674dbaab077395','EGBIM_QA:POST_ATTACHMENT:177','ACTIVE','2026-05-13 17:21:39','2026-05-13 17:21:39' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='390' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:177');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'GETIP_98_메뉴얼.docx','178.docx','LOCAL','/app/uploads','EGBIM_QA/attachments/178.docx','application/vnd.openxmlformats-officedocument.wordprocessingml.document','docx',58867,'afd0afeaf088e0058e457e33a6c4e660103848a7bab6cba08f326a7629054a7b','EGBIM_QA:POST_ATTACHMENT:178','ACTIVE','2026-05-13 17:21:39','2026-05-13 17:21:39' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='390' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:178');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'라이센스만료.jpg','179.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/179.jpg','image/jpeg','jpg',91524,'198f52e06dbf9de1325f75fae9c11e3bd51a68bbb1f165e30f4cac4dcdd39aac','EGBIM_QA:POST_ATTACHMENT:179','ACTIVE','2026-05-20 17:02:26','2026-05-20 17:02:26' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='394' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:179');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'스크린샷 2026-05-21 100324.png','180.png','LOCAL','/app/uploads','EGBIM_QA/attachments/180.png','image/png','png',14012,'49dda271788a188005717723998aa1022bc28a21bdbcc7ce7259cb74af441c2c','EGBIM_QA:POST_ATTACHMENT:180','ACTIVE','2026-05-21 10:04:54','2026-05-21 10:04:54' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='395' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:180');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'스크린샷 2026-05-21 100321.png','181.png','LOCAL','/app/uploads','EGBIM_QA/attachments/181.png','image/png','png',13860,'fb6907e21921016d561401319a350063221ca2cc3e715247364a316320abc69b','EGBIM_QA:POST_ATTACHMENT:181','ACTIVE','2026-05-21 10:04:54','2026-05-21 10:04:54' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='395' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:181');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260526_095314.png','182.png','LOCAL','/app/uploads','EGBIM_QA/attachments/182.png','image/png','png',20200,'36e75055fbade2a0a441cf32aed206f483daea06c0beb41160fbe03e76494336','EGBIM_QA:POST_ATTACHMENT:182','ACTIVE','2026-05-26 09:54:22','2026-05-26 09:54:22' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='397' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:182');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'가이드.jpg','183.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/183.jpg','image/jpeg','jpg',338193,'06838837d04581bc700a964ad33d67db9d661be82abbde866b0f4d808f08a249','EGBIM_QA:POST_ATTACHMENT:183','ACTIVE','2026-05-29 09:33:19','2026-05-29 09:33:19' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='402' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:183');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'사용자 화면.jpg','184.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/184.jpg','image/jpeg','jpg',93003,'c29fe3d3ab85169abee38e19003d79184d12bbba922fdbbac567bd433d60b72d','EGBIM_QA:POST_ATTACHMENT:184','ACTIVE','2026-05-29 09:33:19','2026-05-29 09:33:19' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='402' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:184');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20260601_111539096.png','185.png','LOCAL','/app/uploads','EGBIM_QA/attachments/185.png','image/png','png',279159,'7b79ead79665318a1e73651a1eb1055739ed2520d8e30837cf5d6f2475244bc8','EGBIM_QA:POST_ATTACHMENT:185','ACTIVE','2026-06-01 11:16:58','2026-06-01 11:16:58' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='403' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:185');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2026-06-02 092930.png','186.png','LOCAL','/app/uploads','EGBIM_QA/attachments/186.png','image/png','png',32378,'fc83ae8ef9f4fe4f3605707719b5dc8697a12a441540b57d89fa54825a206701','EGBIM_QA:POST_ATTACHMENT:186','ACTIVE','2026-06-02 09:31:53','2026-06-02 09:31:53' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='404' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:186');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2026-06-02 092947.png','187.png','LOCAL','/app/uploads','EGBIM_QA/attachments/187.png','image/png','png',32624,'0c718e4c5a69ae7457c9e7ae4da3623d0675cfa2a0282e56982cf47e3b682f90','EGBIM_QA:POST_ATTACHMENT:187','ACTIVE','2026-06-02 09:31:53','2026-06-02 09:31:53' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='404' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:187');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'Template_2.1 배수유역도.dwg','188.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/188.dwg','image/vnd.dwg','dwg',29378984,'cd3077319dff0fa7d75f19b9ffb20c309a78534276e36854a759109e1fbaa5c2','EGBIM_QA:POST_ATTACHMENT:188','ACTIVE','2026-06-04 09:01:41','2026-06-04 09:01:41' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='400' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:188');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20260605_142943486.jpg','189.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/189.jpg','image/jpeg','jpg',703573,'ed7e93cfe49173b4e2c7c948af324b4c5614ea9c878f6e3c75c4d73c2b14ad85','EGBIM_QA:POST_ATTACHMENT:189','ACTIVE','2026-06-05 14:31:43','2026-06-05 14:31:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='407' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:189');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'KakaoTalk_20260605_142943486_01.jpg','190.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/190.jpg','image/jpeg','jpg',664978,'0804c807921f6fe03755b583cd61a0141d8db63b1eb1da0a39452dac33aa3d2a','EGBIM_QA:POST_ATTACHMENT:190','ACTIVE','2026-06-05 14:31:43','2026-06-05 14:31:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='407' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:190');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2026-06-11 174153.png','192.png','LOCAL','/app/uploads','EGBIM_QA/attachments/192.png','image/png','png',4681,'3641828b91540c5c4a25151acf2a80f93a740054aa7051d26b23e4eb48de1b8b','EGBIM_QA:POST_ATTACHMENT:192','ACTIVE','2026-06-11 17:42:05','2026-06-11 17:42:05' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='412' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:192');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'01. GUI.png','193.png','LOCAL','/app/uploads','EGBIM_QA/attachments/193.png','image/png','png',9833,'4121b7840b7e77235256515818c56b4351f8c7a65167e434df9f884bd134f2a1','EGBIM_QA:POST_ATTACHMENT:193','ACTIVE','2026-06-19 11:13:43','2026-06-19 11:13:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='414' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:193');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'02. 사용 전.png','194.png','LOCAL','/app/uploads','EGBIM_QA/attachments/194.png','image/png','png',402077,'e05a9f994d23878a1f83f7ab794fc742cb1955b643449208a1b30d06bf44345a','EGBIM_QA:POST_ATTACHMENT:194','ACTIVE','2026-06-19 11:13:43','2026-06-19 11:13:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='414' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:194');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'03. 사용 후.png','195.png','LOCAL','/app/uploads','EGBIM_QA/attachments/195.png','image/png','png',1212504,'27f8b4ec360acc3d092286bee90d1d126d4615dbdb4c91055a510ed224293858','EGBIM_QA:POST_ATTACHMENT:195','ACTIVE','2026-06-19 11:13:43','2026-06-19 11:13:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='414' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:195');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'run_app4.zip','196.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/196.zip','application/zip','zip',4950,'103256f144f8ba51e301c5145b9193d27d68359591addee318f7b7a8379c839c','EGBIM_QA:POST_ATTACHMENT:196','ACTIVE','2026-06-19 11:14:14','2026-06-19 11:14:14' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='414' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:196');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'@결과물.zip','197.zip','LOCAL','/app/uploads','EGBIM_QA/attachments/197.zip','application/zip','zip',15438858,'5a2f7d9533ea54526728159b09d385d2a3687562cc3060e4b085da186cbeb640','EGBIM_QA:POST_ATTACHMENT:197','ACTIVE','2026-06-19 11:21:27','2026-06-19 11:21:27' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='414' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:197');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'캡처.PNG','198.png','LOCAL','/app/uploads','EGBIM_QA/attachments/198.png','image/png','png',176968,'1dea4cd91e5fcce55d0e5138e817270066c36742ba7918ab2d579f1c656c59d3','EGBIM_QA:POST_ATTACHMENT:198','ACTIVE','2026-06-24 10:37:24','2026-06-24 10:37:24' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='415' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:198');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'26.06.23.[사연댐] 가설사무소.dwg','199.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/199.dwg','image/vnd.dwg','dwg',856626,'204ddc38694f24ea2259d2efe82edd924c280ceffa92b73831865e6430a9bdeb','EGBIM_QA:POST_ATTACHMENT:199','ACTIVE','2026-06-24 11:37:24','2026-06-24 11:37:24' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='416' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:199');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'스크린샷 2026-06-25 071539.png','200.png','LOCAL','/app/uploads','EGBIM_QA/attachments/200.png','image/png','png',223886,'36d3b8f9c0e4da121505611cda3788224116982dd38df0508bd8cd84b7fd1c50','EGBIM_QA:POST_ATTACHMENT:200','ACTIVE','2026-06-25 07:20:40','2026-06-25 07:20:40' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='417' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:200');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2026-06-29 101639.png','201.png','LOCAL','/app/uploads','EGBIM_QA/attachments/201.png','image/png','png',6649,'07faa36974b18490bf648b488548c331cb455d49d1d73a09f78dfeb9c43a78c0','EGBIM_QA:POST_ATTACHMENT:201','ACTIVE','2026-06-29 10:34:27','2026-06-29 10:34:27' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='419' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:201');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'드림플러스 다중플롯.png','202.png','LOCAL','/app/uploads','EGBIM_QA/attachments/202.png','image/png','png',43509,'2bc1acfee980a6267ade67a87ab8338e8ade20878af0418ad52793f85e372de9','EGBIM_QA:POST_ATTACHMENT:202','ACTIVE','2026-06-30 13:09:29','2026-06-30 13:09:29' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='421' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:202');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2026-07-01 144718.jpg','203.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/203.jpg','image/jpeg','jpg',293809,'5ccc4ab568fe2e501ce87a0affb1b0a055321d887d87b13ed933579c6ce7a1d5','EGBIM_QA:POST_ATTACHMENT:203','ACTIVE','2026-07-01 14:47:24','2026-07-01 14:47:24' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='423' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:203');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'강경보도육교 기초일반도 및 구조도.dwg','204.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/204.dwg','image/vnd.dwg','dwg',540872,'7d2d1bcfe23042819e436c1aaea2f4f3fa1a251a44741b0b0b720c8620a10c95','EGBIM_QA:POST_ATTACHMENT:204','ACTIVE','2026-07-01 16:24:00','2026-07-01 16:24:00' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='424' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:204');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'K-002.png','205.png','LOCAL','/app/uploads','EGBIM_QA/attachments/205.png','image/png','png',28945,'d9f832f8ac982bbe0d7f99ab810e00191928a151d9f4317db48ce34ab47b1ffd','EGBIM_QA:POST_ATTACHMENT:205','ACTIVE','2026-07-02 09:10:55','2026-07-02 09:10:55' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='426' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:205');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'스크린샷 2026-07-02 170745.png','206.png','LOCAL','/app/uploads','EGBIM_QA/attachments/206.png','image/png','png',246344,'1d7f89223c98be22dd04b4ee8317a08ea51809905eef339eef6f6d94a0744cf4','EGBIM_QA:POST_ATTACHMENT:206','ACTIVE','2026-07-02 17:07:36','2026-07-02 17:07:36' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='430' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:206');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'오류사진.jpg','207.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/207.jpg','image/jpeg','jpg',14300792,'8c457222caea53e77e54ba61677bb6f786ecd112570441d95f4ff0c8a4819976','EGBIM_QA:POST_ATTACHMENT:207','ACTIVE','2026-07-03 09:53:25','2026-07-03 09:53:25' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='431' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:207');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'textmask 적용전.JPG','208.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/208.jpg','image/jpeg','jpg',33475,'7284708a229097dcd33f123cfcab0f39c1614a7951306485f81c312183a179a3','EGBIM_QA:POST_ATTACHMENT:208','ACTIVE','2026-07-08 09:36:45','2026-07-08 09:36:45' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='434' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:208');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'textmask 적용후.JPG','209.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/209.jpg','image/jpeg','jpg',27083,'2a29807d3a5a0bbf42745f357124786d9419e50a0b2637d5ecaf892700417642','EGBIM_QA:POST_ATTACHMENT:209','ACTIVE','2026-07-08 09:36:45','2026-07-08 09:36:45' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='434' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:209');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'bim.jpg','210.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/210.jpg','image/jpeg','jpg',12667664,'706c6f678ac9d511038e358e2115cc0263846ee072a8b8b1574812cbe93230bd','EGBIM_QA:POST_ATTACHMENT:210','ACTIVE','2026-07-08 10:14:36','2026-07-08 10:14:36' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='435' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:210');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'선꼴 다름 이슈.grm','211.grm','LOCAL','/app/uploads','EGBIM_QA/attachments/211.grm','application/octet-stream','grm',2112407,'ef8fee5e1dea30f31f0096215daf08dc73434021f29b2163a4b5f8f8d4e545d3','EGBIM_QA:POST_ATTACHMENT:211','ACTIVE','2026-07-10 17:53:13','2026-07-10 17:53:13' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='442' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:211');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2026-07-14 083937.png','212.png','LOCAL','/app/uploads','EGBIM_QA/attachments/212.png','image/png','png',28036,'161b0876f4992c84abb4a9ccde4baa502d11616c69d87bfed23f30674b5ea0a3','EGBIM_QA:POST_ATTACHMENT:212','ACTIVE','2026-07-14 08:42:05','2026-07-14 08:42:05' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='447' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:212');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'1783986125_f66db96d_화면 캡처 2026-07-14 083937.png','213.png','LOCAL','/app/uploads','EGBIM_QA/attachments/213.png','image/png','png',28036,'161b0876f4992c84abb4a9ccde4baa502d11616c69d87bfed23f30674b5ea0a3','EGBIM_QA:POST_ATTACHMENT:213','ACTIVE','2026-07-14 11:40:47','2026-07-14 11:40:47' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='448' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:213');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'선꼴 2.grm','214.grm','LOCAL','/app/uploads','EGBIM_QA/attachments/214.grm','application/octet-stream','grm',76261,'4bc135754b89ba21847ad2aebab2b7b1ca15af541ce10f8156c4e1c17b155960','EGBIM_QA:POST_ATTACHMENT:214','ACTIVE','2026-07-15 09:07:35','2026-07-15 09:07:35' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='451' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:214');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'선꼴 1.grm','215.grm','LOCAL','/app/uploads','EGBIM_QA/attachments/215.grm','application/octet-stream','grm',118820,'f93670ba87ca71a2768d731b587b88851a0b8d492fa18fea55036d76bd632994','EGBIM_QA:POST_ATTACHMENT:215','ACTIVE','2026-07-15 09:07:35','2026-07-15 09:07:35' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='451' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:215');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'1.png','216.png','LOCAL','/app/uploads','EGBIM_QA/attachments/216.png','image/png','png',158133,'15db3aec0617f72f7dea15ffbc0242097fe2635976f0d60b78f1cd1558d926d6','EGBIM_QA:POST_ATTACHMENT:216','ACTIVE','2026-07-16 13:45:12','2026-07-16 13:45:12' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='454' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:216');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'LISP파일_오류.dwg','217.dwg','LOCAL','/app/uploads','EGBIM_QA/attachments/217.dwg','image/vnd.dwg','dwg',2563303,'13e72e81f4617a23d1f6136b3ed5e74ef28c704b5929b02d96a7922b214df0c2','EGBIM_QA:POST_ATTACHMENT:217','ACTIVE','2026-07-20 10:28:06','2026-07-20 10:28:06' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='458' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:217');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'횡단면_응용_v12.lsp','218.lsp','LOCAL','/app/uploads','EGBIM_QA/attachments/218.lsp','application/octet-stream','lsp',19689,'07c1d42ee3e60b05c08afe7f77bf4b5f2053a1e5f4226936369e0b1e2fe60803','EGBIM_QA:POST_ATTACHMENT:218','ACTIVE','2026-07-20 10:28:06','2026-07-20 10:28:06' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='458' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:218');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'횡단면_응용_v12_설명서.hwp','219.hwp','LOCAL','/app/uploads','EGBIM_QA/attachments/219.hwp','application/x-hwp','hwp',1381376,'7a9ad413f7eadf3c7c2b1973e090371abd73923e484d23605297438eb37ae9f7','EGBIM_QA:POST_ATTACHMENT:219','ACTIVE','2026-07-20 10:28:06','2026-07-20 10:28:06' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='458' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:219');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'EG-BIM Error .jpg','220.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/220.jpg','image/jpeg','jpg',124291,'77648a5bceb0c55983d8555a4975e4fcb161f1565c5f17293fc77550ba7e3190','EGBIM_QA:POST_ATTACHMENT:220','ACTIVE','2026-07-20 11:25:29','2026-07-20 11:25:29' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='459' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:220');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'260721 실행오류.png','221.png','LOCAL','/app/uploads','EGBIM_QA/attachments/221.png','image/png','png',105967,'252c66af3d69b544828912f84c6158dcaed6be7240fceeb2c9c6ad3944c27ce4','EGBIM_QA:POST_ATTACHMENT:221','ACTIVE','2026-07-21 18:48:43','2026-07-21 18:48:43' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='460' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:221');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'K-001.png','222.png','LOCAL','/app/uploads','EGBIM_QA/attachments/222.png','image/png','png',59142,'bf7abb7a909fd18dff9938ff95d9d0ee0b9f9aaff5f092e3de95cdc9e402f277','EGBIM_QA:POST_ATTACHMENT:222','ACTIVE','2026-07-21 18:59:10','2026-07-21 18:59:10' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='461' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:222');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'화면 캡처 2026-07-21 200406.jpg','223.jpg','LOCAL','/app/uploads','EGBIM_QA/attachments/223.jpg','image/jpeg','jpg',80964,'24fc811b1aca242b4cc8b832fbffe5555e18280db0e6368334526ee010793dd2','EGBIM_QA:POST_ATTACHMENT:223','ACTIVE','2026-07-21 20:04:55','2026-07-21 20:04:55' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='465' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:223');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260722_개선요청.png','224.png','LOCAL','/app/uploads','EGBIM_QA/attachments/224.png','image/png','png',40861,'0617cb294c343ea34d7367e2ad219b3dc3fbd5b1e1f39e283b825fb719541645','EGBIM_QA:POST_ATTACHMENT:224','ACTIVE','2026-07-22 09:38:19','2026-07-22 09:38:19' FROM (SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='468' AND mm.ticket_id IS NOT NULL LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:POST_ATTACHMENT:224');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'참고 이미지.jpg','17.jpg','LOCAL','/app/uploads','EGBIM_QA/comment-images/17.jpg','image/jpeg','jpg',327115,'ae009f7049d5168d2ef2fc9380a83c1e3f4da613d080902a3764e50fc2e42754','EGBIM_QA:COMMENT_IMAGE:17','ACTIVE','2025-11-14 10:57:54','2025-11-14 10:57:54' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:349' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:17');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'SecurityConfig.jpg','29.jpg','LOCAL','/app/uploads','EGBIM_QA/comment-images/29.jpg','image/jpeg','jpg',49786,'2987fcfda9a450f8ca1d140d1189f54c67ad06b32c89520504172d9a3255001f','EGBIM_QA:COMMENT_IMAGE:29','ACTIVE','2025-12-11 14:09:25','2025-12-11 14:09:25' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:468' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:29');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'image06.png','30.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/30.png','image/png','png',78462,'f9c9269c4e89b5bbad705b78f206274c63402d269c7a32a4ef3d9916265199a2','EGBIM_QA:COMMENT_IMAGE:30','ACTIVE','2025-12-24 08:38:52','2025-12-24 08:38:52' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:514' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:30');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'image07.png','31.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/31.png','image/png','png',130457,'4d497d50db8fbdc144337f3e1908bb9f1205a7dccf41177002cfa376d15d5314','EGBIM_QA:COMMENT_IMAGE:31','ACTIVE','2025-12-24 08:38:52','2025-12-24 08:38:52' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:514' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:31');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'image08.png','32.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/32.png','image/png','png',89328,'ec7ce3d5555a024aaa0dbe6c8ec1117d71997aabb0e60d45b4d0073a437408a6','EGBIM_QA:COMMENT_IMAGE:32','ACTIVE','2025-12-24 08:38:52','2025-12-24 08:38:52' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:514' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:32');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'명령어 선택 창.png','33.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/33.png','image/png','png',31927,'31faae37cd0f0267efd76a05ab26e618b6f9c9b9e266eb195e1eb3d773c19c87','EGBIM_QA:COMMENT_IMAGE:33','ACTIVE','2025-12-31 11:51:18','2025-12-31 11:51:18' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:523' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:33');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'탭1.PNG','36.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/36.png','image/png','png',164678,'80f51af777c389c9cf0d8cc5ff9c5c38cef0f799ea0a68f3c4ab89423d4f0658','EGBIM_QA:COMMENT_IMAGE:36','ACTIVE','2026-01-07 14:43:08','2026-01-07 14:43:08' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:551' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:36');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'탭2.PNG','37.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/37.png','image/png','png',167078,'c60132c43be5f5337ecb7d4bbccc465e922be755373ad94a13d7a5ac319345b5','EGBIM_QA:COMMENT_IMAGE:37','ACTIVE','2026-01-07 14:43:08','2026-01-07 14:43:08' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:551' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:37');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna271_키보드한글자판설정.png','38.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/38.png','image/png','png',92293,'438d4503b184e67b6401cbddf8abe4bb7d0cde8463b08b8971dc9e94b0a65287','EGBIM_QA:COMMENT_IMAGE:38','ACTIVE','2026-01-26 10:29:52','2026-01-26 10:29:52' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:571' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:38');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna276_ole이미지뒤집힘_패치예정.png','39.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/39.png','image/png','png',419325,'f0b6905dd73c8b002ace827c66799722d610c471394ea379170d25adda2b23ca','EGBIM_QA:COMMENT_IMAGE:39','ACTIVE','2026-02-03 08:14:05','2026-02-03 08:14:05' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:576' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:39');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna281_자동저장파일.png','40.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/40.png','image/png','png',28692,'93d51296e16e5016c299a4fe575a696df22a91b78f41abd945ea9f035cabccb2','EGBIM_QA:COMMENT_IMAGE:40','ACTIVE','2026-02-10 10:23:32','2026-02-10 10:23:32' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:582' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:40');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna281_자동저장설정.png','41.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/41.png','image/png','png',206292,'94a9e39d7c8bb4402882854bc881b688de779d2899640ad14384b70b34e02347','EGBIM_QA:COMMENT_IMAGE:41','ACTIVE','2026-02-10 10:23:32','2026-02-10 10:23:32' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:582' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:41');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna281_자동저장파일.png','42.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/42.png','image/png','png',28692,'93d51296e16e5016c299a4fe575a696df22a91b78f41abd945ea9f035cabccb2','EGBIM_QA:COMMENT_IMAGE:42','ACTIVE','2026-02-10 10:37:36','2026-02-10 10:37:36' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:584' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:42');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna281_자동저장설정.png','43.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/43.png','image/png','png',206292,'94a9e39d7c8bb4402882854bc881b688de779d2899640ad14384b70b34e02347','EGBIM_QA:COMMENT_IMAGE:43','ACTIVE','2026-02-10 10:37:36','2026-02-10 10:37:36' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:584' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:43');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'image01.png','44.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/44.png','image/png','png',37497,'66c9dc2462af57fbf524489dc39210f09216cafec9e610d6071d345c679b6568','EGBIM_QA:COMMENT_IMAGE:44','ACTIVE','2026-03-06 10:23:02','2026-03-06 10:23:02' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:618' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:44');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna327_DXF를dwg로변환후acad에서확인.png','45.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/45.png','image/png','png',125198,'43d058a775834642a2f27cce91baf90e538f6024c6be964485b214c817bc26be','EGBIM_QA:COMMENT_IMAGE:45','ACTIVE','2026-03-11 14:33:16','2026-03-11 14:33:16' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:647' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:45');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260312_193835.jpg','46.jpg','LOCAL','/app/uploads','EGBIM_QA/comment-images/46.jpg','image/jpeg','jpg',179050,'79f21cf5d6a9e716d5ade2427e00ab045fd7e6fbb7377a331a83794f3c09e47d','EGBIM_QA:COMMENT_IMAGE:46','ACTIVE','2026-03-12 19:38:58','2026-03-12 19:38:58' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:660' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:46');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260312_193757.jpg','47.jpg','LOCAL','/app/uploads','EGBIM_QA/comment-images/47.jpg','image/jpeg','jpg',279660,'3c0e0306d603002df6fad3fed79b613f7594d5fc698e8a39a6e9f26890807da7','EGBIM_QA:COMMENT_IMAGE:47','ACTIVE','2026-03-12 19:38:58','2026-03-12 19:38:58' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:660' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:47');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna329_FC입력시FCLOSEALL명령 자동완성.png','48.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/48.png','image/png','png',4822,'de8901d145e579b2159dcd1fd217213e666e494a3261bf1231cdec8d12b2034f','EGBIM_QA:COMMENT_IMAGE:48','ACTIVE','2026-03-13 10:03:23','2026-03-13 10:03:23' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:662' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:48');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna322_별도 다중파일 작업중 창 켜지지 않음_테스트.png','49.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/49.png','image/png','png',433220,'d7121f06350210efbca5551f5ec7af79f7dbf88bdc076869c35a3a8239e4b0dd','EGBIM_QA:COMMENT_IMAGE:49','ACTIVE','2026-03-17 14:11:29','2026-03-17 14:11:29' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:668' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:49');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'20260317_152313.jpg','50.jpg','LOCAL','/app/uploads','EGBIM_QA/comment-images/50.jpg','image/jpeg','jpg',224029,'d72548c84458a2e445cc923b4a28868addae3fed503aaf5611cfdb9dcd3550d2','EGBIM_QA:COMMENT_IMAGE:50','ACTIVE','2026-03-17 15:23:40','2026-03-17 15:23:40' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:670' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:50');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna342_acad와egbim색상비교 in layout.png','51.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/51.png','image/png','png',324053,'c391e420c433be069c3adbea5f0abf64cced250e324da5553075db9551aa07a2','EGBIM_QA:COMMENT_IMAGE:51','ACTIVE','2026-03-20 16:29:15','2026-03-20 16:29:15' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:680' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:51');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna342_acad와egbim색상비교.png','52.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/52.png','image/png','png',546625,'2b00aa885149789e3269e467d961167e24c0e052eb2fa258358fd585bd8ca4a9','EGBIM_QA:COMMENT_IMAGE:52','ACTIVE','2026-03-20 16:29:15','2026-03-20 16:29:15' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:680' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:52');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna343_단축키 숫자인식_20260323.png','53.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/53.png','image/png','png',342797,'591d3346c7548136efc3fcb022690608cefc7095adacade8814e0b1259ae4ccb','EGBIM_QA:COMMENT_IMAGE:53','ACTIVE','2026-03-23 09:07:56','2026-03-23 09:07:56' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:683' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:53');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna346_egbim삭제후fonts폴더.png','54.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/54.png','image/png','png',31483,'7315350285b526beb1db1a14230b21d8f77bef9d114c74525f95719a868b8fb2','EGBIM_QA:COMMENT_IMAGE:54','ACTIVE','2026-03-23 11:47:02','2026-03-23 11:47:02' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:685' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:54');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna254_명령어하위메뉴끄기_20260401.png','55.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/55.png','image/png','png',349208,'b22e87fc7672666dc6fa706eaa5c920ca66fac33528dcd0df0a1190a57c5dca3','EGBIM_QA:COMMENT_IMAGE:55','ACTIVE','2026-04-01 14:00:29','2026-04-01 14:00:29' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:706' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:55');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna352_우클릭draworder_back_명령프롬프트_20260401.png','56.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/56.png','image/png','png',4360,'0d8382514ac7b1cb7a0d1c817598029dc3ab0f7820e946154b070aeed4e9dd65','EGBIM_QA:COMMENT_IMAGE:56','ACTIVE','2026-04-01 15:41:29','2026-04-01 15:41:29' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:712' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:56');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna137_Materials_png로새물질생성_20260401.png','57.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/57.png','image/png','png',389163,'d1aa6aeb4a4e3a2c9e29fc09f960e28807636e55936c9e9381a93a1ff673dca7','EGBIM_QA:COMMENT_IMAGE:57','ACTIVE','2026-04-01 16:08:25','2026-04-01 16:08:25' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:713' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:57');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna353_acad proxy entity_acad_20260401.png','58.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/58.png','image/png','png',641179,'eb7f970893a076af695cacb3087291ec797355437fb7db4486ea113b9c1dd6a7','EGBIM_QA:COMMENT_IMAGE:58','ACTIVE','2026-04-01 17:28:53','2026-04-01 17:28:53' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:714' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:58');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna354_acad cfm 설정.png','59.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/59.png','image/png','png',126606,'d5423729122c2be0d3defa28ba0bfb46240c306f36ce9b508c1788f5ea211c96','EGBIM_QA:COMMENT_IMAGE:59','ACTIVE','2026-04-03 09:24:18','2026-04-03 09:24:18' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:716' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:59');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna361_도면출력시CTB설정_20260410.png','63.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/63.png','image/png','png',43690,'dc20499c03026e570a547be961cdd6ca4fcc10f024dfae86d4146480875ed375','EGBIM_QA:COMMENT_IMAGE:63','ACTIVE','2026-04-10 15:17:38','2026-04-10 15:17:38' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:727' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:63');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna365_폴리선 그릴수없는오류_THICKNESS0설정.png','64.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/64.png','image/png','png',203322,'c2862046898c957d7c35c5c92e9e639a9c5d72d478f305582d7be2508ddc954b','EGBIM_QA:COMMENT_IMAGE:64','ACTIVE','2026-04-14 15:16:19','2026-04-14 15:16:19' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:733' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:64');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna256_꾸러미도곽인식(V1.4.0)_20260413.png','65.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/65.png','image/png','png',856288,'40184ae3d85c736ec70eab8f133f051c2cf5c56eb877385deed533eee5cf6c02','EGBIM_QA:COMMENT_IMAGE:65','ACTIVE','2026-04-14 17:48:59','2026-04-14 17:48:59' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:735' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:65');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna365_Thickness 초기화 기능추가_20260424.png','66.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/66.png','image/png','png',5036,'12dc32677c41339516f8ab55676536c7be34369b78f14a6bf126f17fd7786edc','EGBIM_QA:COMMENT_IMAGE:66','ACTIVE','2026-04-24 12:01:05','2026-04-24 12:01:05' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:752' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:66');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna315_jpg복사오류_20260511.png','67.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/67.png','image/png','png',329326,'2fc6dd5f6855b2fbec8d975d3d6e0d84605b6474be1b14fc918a473f8c4b87f1','EGBIM_QA:COMMENT_IMAGE:67','ACTIVE','2026-05-11 09:54:10','2026-05-11 09:54:10' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:765' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:67');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna315_플롯시 투명도 적용됨_20260511.png','68.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/68.png','image/png','png',842034,'7331e1d6c708bfeb720a6fe8a8cd4b0ea509b1d76accd0228f7daaec6b4b59ff','EGBIM_QA:COMMENT_IMAGE:68','ACTIVE','2026-05-11 09:54:10','2026-05-11 09:54:10' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:765' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:68');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna401_사용자설정저장하기_20260529.png','69.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/69.png','image/png','png',109112,'17724489d49d6cee8d08b6e8073de046a633cb6c2bc11b01f83c82f42d2ef8f3','EGBIM_QA:COMMENT_IMAGE:69','ACTIVE','2026-05-29 11:58:03','2026-05-29 11:58:03' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:787' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:69');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna402_내부블록으로bind_20260529.png','70.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/70.png','image/png','png',402775,'65027c99f4a5a5556d2d0c9e8c553c20e54c004ee54729c2d6ba23ba29f213fd','EGBIM_QA:COMMENT_IMAGE:70','ACTIVE','2026-05-29 12:24:32','2026-05-29 12:24:32' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:788' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:70');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna467_문자회전(TER)설정_20260722.png','71.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/71.png','image/png','png',21323,'ed8e9a6e3d025c2570d9d7e2da669b6e0029d1cb09ec873274e437aee072a17c','EGBIM_QA:COMMENT_IMAGE:71','ACTIVE','2026-07-22 10:17:59','2026-07-22 10:17:59' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:852' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:71');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna460_dwg파일 실행 안되는 오류_20260722.png','72.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/72.png','image/png','png',440367,'3afe341687d09d21e4ccef6d6ebca10e86aee9950a9048681613f5349eca5384','EGBIM_QA:COMMENT_IMAGE:72','ACTIVE','2026-07-22 10:43:10','2026-07-22 10:43:10' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:855' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:72');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna465_JMP명령테스트.jpg','73.jpg','LOCAL','/app/uploads','EGBIM_QA/comment-images/73.jpg','image/jpeg','jpg',256526,'f2903506f6721a5712711ec52145fe627103365f54ee240aa64960db7c5b6887','EGBIM_QA:COMMENT_IMAGE:73','ACTIVE','2026-07-22 10:57:30','2026-07-22 10:57:30' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:856' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:73');
|
||||
INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,@EGBIM_UPLOADER_TENANT_ID,'qna462_acad_purge창_20260722.png','74.png','LOCAL','/app/uploads','EGBIM_QA/comment-images/74.png','image/png','png',427241,'7d2bdc181bac383a6120c3bcb2198f67417993cbdd30d9ccb2f20ea555883593','EGBIM_QA:COMMENT_IMAGE:74','ACTIVE','2026-07-22 17:55:27','2026-07-22 17:55:27' FROM (SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc WHERE tc.abc_comment_id='EGBIM_QA:863' LIMIT 1) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id='EGBIM_QA:COMMENT_IMAGE:74');
|
||||
COMMIT;
|
||||
@@ -0,0 +1,63 @@
|
||||
-- Generated for baron_support.support_tickets.
|
||||
-- Applies EGBIM qa_posts.is_secret OR qa_posts.is_private after ticket mappings exist.
|
||||
SET NAMES utf8mb4;
|
||||
USE `baron_support`;
|
||||
START TRANSACTION;
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='10';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='15';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='20';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='27';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='28';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='32';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='40';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='41';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='59';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='61';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='69';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='70';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='76';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='98';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='104';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='106';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='107';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='109';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='117';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='119';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='126';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='128';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='130';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='139';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='144';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='153';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='165';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='166';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='177';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='224';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='233';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='238';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='243';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='253';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='261';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='263';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='268';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='272';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='274';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='275';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='293';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='297';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='323';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='357';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='359';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='360';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='368';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='369';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='388';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='407';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='409';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='414';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='430';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='433';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='445';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='458';
|
||||
UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' AND mm.source_entity_id='480';
|
||||
COMMIT;
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,279 @@
|
||||
entity_type,source_id,parent_id,original_name,source_value,source_path,storage_key,uploaded_at,file_size,checksum_sha256,status
|
||||
POST_ATTACHMENT,4,14,프린트 오류.png,/egbim/uploads/qa/1756277537_72306a75_프린트 오류.png,/home/b24014/egbim/egbim/uploads/qa/1756277537_72306a75_프린트 오류.png,EGBIM_QA/attachments/4.png,2025-08-27 15:52:17,133728,bd914f2164a13dba962179cd7a64da1099d75fd6a58886849a331b23e7b6f015,READY
|
||||
POST_ATTACHMENT,5,20,이지빔개선이미지1.PNG,/egbim/uploads/qa/1756446059_ae14596f_이지빔개선이미지1.PNG,/home/b24014/egbim/egbim/uploads/qa/1756446059_ae14596f_이지빔개선이미지1.PNG,EGBIM_QA/attachments/5.png,2025-08-29 14:40:59,86593,f9315bdd7d116ea78562a9245aa0247a4e8221045218ca5977e9bbf99680ebac,READY
|
||||
POST_ATTACHMENT,6,20,이지빔개선이미지2.PNG,/egbim/uploads/qa/1756446059_39f5a321_이지빔개선이미지2.PNG,/home/b24014/egbim/egbim/uploads/qa/1756446059_39f5a321_이지빔개선이미지2.PNG,EGBIM_QA/attachments/6.png,2025-08-29 14:40:59,36202,16b27fc3d232f79aeeb85723807dd041db86b0a78ef37e67ed3227f35cd98451,READY
|
||||
POST_ATTACHMENT,7,21,대야천교 A2노리.zip,/egbim/uploads/qa/1756449399_c8197e7c_대야천교 A2노리.zip,/home/b24014/egbim/egbim/uploads/qa/1756449399_c8197e7c_대야천교 A2노리.zip,EGBIM_QA/attachments/7.zip,2025-08-29 15:36:39,5444903,967cdcebd2445bc6957ef11f7a9ef4b231b81e008ad19ab93b046f0fa4a868bd,READY
|
||||
POST_ATTACHMENT,8,22,오류문의.zip,/egbim/uploads/qa/1756450881_495434af_오류문의.zip,/home/b24014/egbim/egbim/uploads/qa/1756450881_495434af_오류문의.zip,EGBIM_QA/attachments/8.zip,2025-08-29 16:01:21,1710514,a63786e18553620ca4878aa09f845222aafdba1dbb0c133ffc3da5d195fe25c4,READY
|
||||
POST_ATTACHMENT,10,33,250902 삽도 수정(내부 표 변경).zip,/egbim/uploads/qa/1756796864_726ff7c7_250902 삽도 수정(내부 표 변경).zip,/home/b24014/egbim/egbim/uploads/qa/1756796864_726ff7c7_250902 삽도 수정(내부 표 변경).zip,EGBIM_QA/attachments/10.zip,2025-09-02 16:07:44,731246,01da6bfa22ac034f89ce9c7db10aa7d007a76a58a9e2851670ee4a2c615e0de7,READY
|
||||
POST_ATTACHMENT,11,39,CAD상 배경이미지 예시.JPG,/egbim/uploads/qa/1756860263_cce65130_CAD상 배경이미지 예시.JPG,/home/b24014/egbim/egbim/uploads/qa/1756860263_cce65130_CAD상 배경이미지 예시.JPG,EGBIM_QA/attachments/11.jpg,2025-09-03 09:44:23,61620,8c93f224323fe78e2bce3b7fec121a9b8518f44f519c0380b4a5a2ef1929d70e,READY
|
||||
POST_ATTACHMENT,12,39,JPG 출력시 배경이미지 깨짐 예시.JPG,/egbim/uploads/qa/1756860263_0d6cb4d9_JPG 출력시 배경이미지 깨짐 예시.JPG,/home/b24014/egbim/egbim/uploads/qa/1756860263_0d6cb4d9_JPG 출력시 배경이미지 깨짐 예시.JPG,EGBIM_QA/attachments/12.jpg,2025-09-03 09:44:23,208715,5b0698c8d917220c52f0409a25ccb6e461863146bc0e04b0b2fe1a7ea0fb1f29,READY
|
||||
POST_ATTACHMENT,13,41,20250903_094341.png,/egbim/uploads/qa/1756860338_79f18c91_20250903_094341.png,/home/b24014/egbim/egbim/uploads/qa/1756860338_79f18c91_20250903_094341.png,EGBIM_QA/attachments/13.png,2025-09-03 09:45:38,17656,7ac844557281a514c33dc897282a1df8372c4052eba23067c8221cf8147c7fbf,READY
|
||||
POST_ATTACHMENT,14,43,11.zip,/egbim/uploads/qa/1756881096_213f602d_11.zip,/home/b24014/egbim/egbim/uploads/qa/1756881096_213f602d_11.zip,EGBIM_QA/attachments/14.zip,2025-09-03 15:31:36,3722287,59bf53d3aa1b819a80acb4af4a385293d7302d1a71aed8f8f3e097a880f62b87,READY
|
||||
POST_ATTACHMENT,15,59,20250905_175019.png,/egbim/uploads/qa/1757062235_608d2701_20250905_175019.png,/home/b24014/egbim/egbim/uploads/qa/1757062235_608d2701_20250905_175019.png,EGBIM_QA/attachments/15.png,2025-09-05 17:50:35,105167,18ad50e7390753a32a26b6b24491e3df591f7c29a47b7b11b60d5e22f89db580,READY
|
||||
POST_ATTACHMENT,16,60,플롯 오류.jpg,/egbim/uploads/qa/1757314700_3d3332bc_플롯 오류.jpg,/home/b24014/egbim/egbim/uploads/qa/1757314700_3d3332bc_플롯 오류.jpg,EGBIM_QA/attachments/16.jpg,2025-09-08 15:58:20,2354295,b9e6a34433343b8d840e22f075b799bf3afc4b52195f2e672ea51e45b327b3d2,READY
|
||||
POST_ATTACHMENT,17,61,이지빔 오류.png,/egbim/uploads/qa/1757326515_c8878396_이지빔 오류.png,/home/b24014/egbim/egbim/uploads/qa/1757326515_c8878396_이지빔 오류.png,EGBIM_QA/attachments/17.png,2025-09-08 19:15:15,182115,9ea3798264732730aaa723d4643c4e59d6795da6f1ce10d4a144d8211e7d56f9,READY
|
||||
POST_ATTACHMENT,18,64,KakaoTalk_20250910_154923538.jpg,/egbim/uploads/qa/1757487093_822fb3ae_KakaoTalk_20250910_154923538.jpg,/home/b24014/egbim/egbim/uploads/qa/1757487093_822fb3ae_KakaoTalk_20250910_154923538.jpg,EGBIM_QA/attachments/18.jpg,2025-09-10 15:51:33,4877121,721e852361cda56e5961148fc33a31b7dfa6d3cd268f78fcbfb6c6403e72835f,READY
|
||||
POST_ATTACHMENT,19,69,cmdengonly.png,/egbim/uploads/qa/1757572226_fdef9b80_cmdengonly.png,/home/b24014/egbim/egbim/uploads/qa/1757572226_fdef9b80_cmdengonly.png,EGBIM_QA/attachments/19.png,2025-09-11 15:30:26,5322,9d8253b592101e759e2a08bb160b4fa6b65a78dad021ce1b9acb0225ca64953a,READY
|
||||
POST_ATTACHMENT,20,69,이지빔큐앤에이개선.png,/egbim/uploads/qa/1757572414_9d10ad54_이지빔큐앤에이개선.png,/home/b24014/egbim/egbim/uploads/qa/1757572414_9d10ad54_이지빔큐앤에이개선.png,EGBIM_QA/attachments/20.png,2025-09-11 15:33:34,29096,32d10251833be4c3d45bc1f4e6d34b59cee665c05b56de7b1e639648bd42ffe7,READY
|
||||
POST_ATTACHMENT,21,70,인쇄하기 에러.png,/egbim/uploads/qa/1757656398_fce26fae_인쇄하기 에러.png,/home/b24014/egbim/egbim/uploads/qa/1757656398_fce26fae_인쇄하기 에러.png,EGBIM_QA/attachments/21.png,2025-09-12 14:53:18,100318,6b993fc410107a0ba3fd65e9ea114ab1287f26b5e175d83a10c583cc6970268b,READY
|
||||
POST_ATTACHMENT,22,70,인쇄하기 정상.png,/egbim/uploads/qa/1757656398_235a2777_인쇄하기 정상.png,/home/b24014/egbim/egbim/uploads/qa/1757656398_235a2777_인쇄하기 정상.png,EGBIM_QA/attachments/22.png,2025-09-12 14:53:18,181149,32265ec02413ac1bd77beadd8dcac0308ce2ac15625d9ffd788db18ff4de7ebb,READY
|
||||
POST_ATTACHMENT,23,76,캡처1.JPG,/egbim/uploads/qa/1757983385_5816535c_캡처1.JPG,/home/b24014/egbim/egbim/uploads/qa/1757983385_5816535c_캡처1.JPG,EGBIM_QA/attachments/23.jpg,2025-09-16 09:43:05,118891,518031574b99f80957618509c60e428904402780ab9313fe81e70bf9c9ef3309,READY
|
||||
POST_ATTACHMENT,25,97,003~004.평면및종단면도(금곡사사)-250911 - Standard.zip,/egbim/uploads/qa/1758242512_7b7568be_003~004.평면및종단면도(금곡사사)-250911 - Standard.zip,/home/b24014/egbim/egbim/uploads/qa/1758242512_7b7568be_003~004.평면및종단면도(금곡사사)-250911 - Standard.zip,EGBIM_QA/attachments/25.zip,2025-09-19 09:41:52,15763404,b779df93f53bf81b0fa5ac7f2aae0b7b15b1d343264aba0eb714a4298c63320d,READY
|
||||
POST_ATTACHMENT,26,97,제목 없음.png,/egbim/uploads/qa/1758242512_1560e88e_제목 없음.png,/home/b24014/egbim/egbim/uploads/qa/1758242512_1560e88e_제목 없음.png,EGBIM_QA/attachments/26.png,2025-09-19 09:41:52,152283,ae71bb484bd3451f95af6f796ab471523bb3f011841132c17d9cb4a249c32898,READY
|
||||
POST_ATTACHMENT,27,98,KakaoTalk_20250919_153731765.png,/egbim/uploads/qa/1758264197_5b32ce70_KakaoTalk_20250919_153731765.png,/home/b24014/egbim/egbim/uploads/qa/1758264197_5b32ce70_KakaoTalk_20250919_153731765.png,EGBIM_QA/attachments/27.png,2025-09-19 15:43:17,3747,c28cb944b58b3e178f43cbeccc8712f71e2932f84041a6cc321730051e537976,READY
|
||||
POST_ATTACHMENT,29,106,Resized_20250923_151823_1758608324791.jpeg,/egbim/uploads/qa/1758608992_275f357e_Resized_20250923_151823_1758608324791.jpeg,/home/b24014/egbim/egbim/uploads/qa/1758608992_275f357e_Resized_20250923_151823_1758608324791.jpeg,EGBIM_QA/attachments/29.jpeg,2025-09-23 15:29:52,2735686,0ccbb7ebdab327fde110fedca438496b47c8b56059f46219b146264698075583,READY
|
||||
POST_ATTACHMENT,30,108,04.슬래브 수정하기.zip,/egbim/uploads/qa/1758677827_34e4d97c_04.슬래브 수정하기.zip,/home/b24014/egbim/egbim/uploads/qa/1758677827_34e4d97c_04.슬래브 수정하기.zip,EGBIM_QA/attachments/30.zip,2025-09-24 10:37:07,1593369,c89d558bef6e2b429f243a38c6302129bbf9c0cf2de2290999d12b357ea0e20f,READY
|
||||
POST_ATTACHMENT,31,108,외부참조_대덕특구 도곽.zip,/egbim/uploads/qa/1758677952_6b8c2186_외부참조_대덕특구 도곽.zip,/home/b24014/egbim/egbim/uploads/qa/1758677952_6b8c2186_외부참조_대덕특구 도곽.zip,EGBIM_QA/attachments/31.zip,2025-09-24 10:39:12,66755,8634ebe61650a104bd4bab0a510290ee0e5e4346812eb0dcb1f41460eb21bba5,READY
|
||||
POST_ATTACHMENT,32,111,EZBIM.jpg,/egbim/uploads/qa/1758701833_c9f6691e_EZBIM.jpg,/home/b24014/egbim/egbim/uploads/qa/1758701833_c9f6691e_EZBIM.jpg,EGBIM_QA/attachments/32.jpg,2025-09-24 17:17:13,1638060,9bd17c77de3cdb111e4e1b9a5e228c6c335e01602ce42320540e3458ca514947,READY
|
||||
POST_ATTACHMENT,33,113,화면 캡처 2025-09-25 152205.png,/egbim/uploads/qa/1758782172_8a78049e_화면 캡처 2025-09-25 152205.png,/home/b24014/egbim/egbim/uploads/qa/1758782172_8a78049e_화면 캡처 2025-09-25 152205.png,EGBIM_QA/attachments/33.png,2025-09-25 15:36:12,304829,04541448a57432d4b941e6beb7a1e84bb32152b44d79b36e32edcb0f9959ed5b,READY
|
||||
POST_ATTACHMENT,34,114,스크린샷 2025-09-25 155142.png,/egbim/uploads/qa/1758783152_6f9a9a96_스크린샷 2025-09-25 155142.png,/home/b24014/egbim/egbim/uploads/qa/1758783152_6f9a9a96_스크린샷 2025-09-25 155142.png,EGBIM_QA/attachments/34.png,2025-09-25 15:52:32,104245,157eba9bba07878e9949fe98071edb96077739cda6660dc51e8bbcaf672e1dab,READY
|
||||
POST_ATTACHMENT,35,47,레지스트리.zip,/egbim/uploads/qa/1759124537_12e94f08_레지스트리.zip,/home/b24014/egbim/egbim/uploads/qa/1759124537_12e94f08_레지스트리.zip,EGBIM_QA/attachments/35.zip,2025-09-29 14:42:17,69972,a776041c2266f4d024a29c896b8c80626984775005341de94c7b7443fa4992ae,READY
|
||||
POST_ATTACHMENT,37,118,(기존추가)6.3-5.zip,/egbim/uploads/qa/1759134063_d2c40b65_(기존추가)6.3-5.zip,/home/b24014/egbim/egbim/uploads/qa/1759134063_d2c40b65_(기존추가)6.3-5.zip,EGBIM_QA/attachments/37.zip,2025-09-29 17:21:03,1385160,34fe420ba6f996ba9135232a6ab23e792d99ae3f82ef0efc60ff984f06891a9e,READY
|
||||
POST_ATTACHMENT,38,126,KakaoTalk_20251001_091636675.jpg,/egbim/uploads/qa/1759278008_2aa7e4cc_KakaoTalk_20251001_091636675.jpg,/home/b24014/egbim/egbim/uploads/qa/1759278008_2aa7e4cc_KakaoTalk_20251001_091636675.jpg,EGBIM_QA/attachments/38.jpg,2025-10-01 09:20:08,594266,f9b70eae4b7fd408d3af26404c5d66bb13eaacbfd918f3dcccf2ffba7fac790e,READY
|
||||
POST_ATTACHMENT,39,126,KakaoTalk_20251001_091636675_01.jpg,/egbim/uploads/qa/1759278008_61e68ac8_KakaoTalk_20251001_091636675_01.jpg,/home/b24014/egbim/egbim/uploads/qa/1759278008_61e68ac8_KakaoTalk_20251001_091636675_01.jpg,EGBIM_QA/attachments/39.jpg,2025-10-01 09:20:08,375941,1331b2f284a637cf91cca6a33842b4ab4af9468cc631f0ed2712c0bcd678f72c,READY
|
||||
POST_ATTACHMENT,40,126,KakaoTalk_20251001_091636675_02.jpg,/egbim/uploads/qa/1759278008_0b8ce795_KakaoTalk_20251001_091636675_02.jpg,/home/b24014/egbim/egbim/uploads/qa/1759278008_0b8ce795_KakaoTalk_20251001_091636675_02.jpg,EGBIM_QA/attachments/40.jpg,2025-10-01 09:20:08,47513,b87e04cd48715621c6efa3d7dd32475e860a258fc06bce56f7aac32be9f27cac,READY
|
||||
POST_ATTACHMENT,41,127,출력시 프리트 회질저하.png,/egbim/uploads/qa/1759278039_4c297fbb_출력시 프리트 회질저하.png,/home/b24014/egbim/egbim/uploads/qa/1759278039_4c297fbb_출력시 프리트 회질저하.png,EGBIM_QA/attachments/41.png,2025-10-01 09:20:39,314125,b447b953098f48865b44169a2121144804f78f05584ff345b495a7e369cf9a22,READY
|
||||
POST_ATTACHMENT,43,135,TEXTMATCHCOPY.jpg,/egbim/uploads/qa/1760575122_4467dc88_TEXTMATCHCOPY.jpg,/home/b24014/egbim/egbim/uploads/qa/1760575122_4467dc88_TEXTMATCHCOPY.jpg,EGBIM_QA/attachments/43.jpg,2025-10-16 09:38:42,27605,05312671eef3b5a0128f8805c8cbf8de256f36fcf1a75e5d2a512f2b4e26faf6,READY
|
||||
POST_ATTACHMENT,45,137,material.jpg,/egbim/uploads/qa/1760657651_dc5f6d5c_material.jpg,/home/b24014/egbim/egbim/uploads/qa/1760657651_dc5f6d5c_material.jpg,EGBIM_QA/attachments/45.jpg,2025-10-17 08:34:11,699488,33eee458ca3f9d0543d138e8e40c89ed65a07d3d7c65d1371d1633ab140ce883,READY
|
||||
POST_ATTACHMENT,46,142,화면 캡처 2025-10-21 104231.png,/egbim/uploads/qa/1761010963_c2a91bc5_화면 캡처 2025-10-21 104231.png,/home/b24014/egbim/egbim/uploads/qa/1761010963_c2a91bc5_화면 캡처 2025-10-21 104231.png,EGBIM_QA/attachments/46.png,2025-10-21 10:42:43,238394,49fca16da59c672c7fd56b59e52740098f972bfb70a1fc52257f984082596a89,READY
|
||||
POST_ATTACHMENT,47,144,캡처.PNG,/egbim/uploads/qa/1761027502_a9e21b70_캡처.PNG,/home/b24014/egbim/egbim/uploads/qa/1761027502_a9e21b70_캡처.PNG,EGBIM_QA/attachments/47.png,2025-10-21 15:18:22,77533,2e219736687c5f5f40376985cdb2baee5a8e49f46b26f263bf86463e1ebbb798,READY
|
||||
POST_ATTACHMENT,48,144,캡처12.PNG,/egbim/uploads/qa/1761027502_9b44ccea_캡처12.PNG,/home/b24014/egbim/egbim/uploads/qa/1761027502_9b44ccea_캡처12.PNG,EGBIM_QA/attachments/48.png,2025-10-21 15:18:22,22877,d189e322372ee85b65a7f8f9129f5f297ca14a4aefff24712ab9671317051989,READY
|
||||
POST_ATTACHMENT,49,149,20251022_091405.png,/egbim/uploads/qa/1761092084_725e5079_20251022_091405.png,/home/b24014/egbim/egbim/uploads/qa/1761092084_725e5079_20251022_091405.png,EGBIM_QA/attachments/49.png,2025-10-22 09:14:44,179551,9d327b07c61830fe7774478fb6f394d8c8320ae5ae0cbd45a25aecfdeeb5241b,READY
|
||||
POST_ATTACHMENT,50,152,20251023_095426.png,/egbim/uploads/qa/1761181110_ca938dea_20251023_095426.png,/home/b24014/egbim/egbim/uploads/qa/1761181110_ca938dea_20251023_095426.png,EGBIM_QA/attachments/50.png,2025-10-23 09:58:30,124171,f84b63407297f045e73f9ad4694543e7863bf640194c9b49db36feafcebeade8,READY
|
||||
POST_ATTACHMENT,51,153,도곽 머서리부 격자 오류 2.PNG,/egbim/uploads/qa/1761195003_e07967cc_도곽 머서리부 격자 오류 2.PNG,/home/b24014/egbim/egbim/uploads/qa/1761195003_e07967cc_도곽 머서리부 격자 오류 2.PNG,EGBIM_QA/attachments/51.png,2025-10-23 13:50:03,418337,855a1bcfb6d8fec79110fd48d0aad69b2d627498c4b2ed4ee5a7632720c5c5e5,READY
|
||||
POST_ATTACHMENT,52,153,도곽 머서리부 격자 오류 3.PNG,/egbim/uploads/qa/1761195003_c107a8a0_도곽 머서리부 격자 오류 3.PNG,/home/b24014/egbim/egbim/uploads/qa/1761195003_c107a8a0_도곽 머서리부 격자 오류 3.PNG,EGBIM_QA/attachments/52.png,2025-10-23 13:50:03,353941,ac66cfbaef4b8c77e321fbe524c817b034776afc2c719eafd658981d87cd358b,READY
|
||||
POST_ATTACHMENT,53,153,도곽 모서리부 격자 오류1.PNG,/egbim/uploads/qa/1761195003_a0ff0a6b_도곽 모서리부 격자 오류1.PNG,/home/b24014/egbim/egbim/uploads/qa/1761195003_a0ff0a6b_도곽 모서리부 격자 오류1.PNG,EGBIM_QA/attachments/53.png,2025-10-23 13:50:03,154446,d49a6bb466a14ec4de62e6b9fdaffc75a63062444af53fc7d8a6a53cb2074da1,READY
|
||||
POST_ATTACHMENT,54,155,20251024_100329.png,/egbim/uploads/qa/1761268217_caaf1f4e_20251024_100329.png,/home/b24014/egbim/egbim/uploads/qa/1761268217_caaf1f4e_20251024_100329.png,EGBIM_QA/attachments/54.png,2025-10-24 10:10:17,846646,8d436e0e30e5489d957a964b6dfe2eb3eaa310865f64ca7b290b6eef605d1f7d,READY
|
||||
POST_ATTACHMENT,55,155,20251024_100340.png,/egbim/uploads/qa/1761268217_534de396_20251024_100340.png,/home/b24014/egbim/egbim/uploads/qa/1761268217_534de396_20251024_100340.png,EGBIM_QA/attachments/55.png,2025-10-24 10:10:17,662829,0df9f04c35ed48eadc4c1199f339babdacb79405730bf2d241d5693194f2ecf5,READY
|
||||
POST_ATTACHMENT,56,156,캡처.JPG,/egbim/uploads/qa/1761271363_bcf69228_캡처.JPG,/home/b24014/egbim/egbim/uploads/qa/1761271363_bcf69228_캡처.JPG,EGBIM_QA/attachments/56.jpg,2025-10-24 11:02:43,129195,6ad49be80f978833d25e08bb0642801ad004abc070153123b4a47b14407e13e3,READY
|
||||
POST_ATTACHMENT,57,155,20251024_164603.png,/egbim/uploads/qa/1761292125_cc4a1143_20251024_164603.png,/home/b24014/egbim/egbim/uploads/qa/1761292125_cc4a1143_20251024_164603.png,EGBIM_QA/attachments/57.png,2025-10-24 16:48:45,378048,dacf54d0889a5ca3bafde49415c254af0c6798def7f373c29d5e207fce91010e,READY
|
||||
POST_ATTACHMENT,58,155,20251024_164813.png,/egbim/uploads/qa/1761292125_3f29156a_20251024_164813.png,/home/b24014/egbim/egbim/uploads/qa/1761292125_3f29156a_20251024_164813.png,EGBIM_QA/attachments/58.png,2025-10-24 16:48:45,942771,badb9dfdf5f918d790291170211d9e9f7f1935f62021fc457d23ee5bb57a17cd,READY
|
||||
POST_ATTACHMENT,60,173,eg-bim 설치오류.PNG,/egbim/uploads/qa/1762213063_34db2769_eg-bim 설치오류.PNG,/home/b24014/egbim/egbim/uploads/qa/1762213063_34db2769_eg-bim 설치오류.PNG,EGBIM_QA/attachments/60.png,2025-11-04 08:37:43,43904,fd1b9b58e85504a163dfe65213e68ff1cbc2482b73d5476af53648a928944f3d,READY
|
||||
POST_ATTACHMENT,63,178,Desktop.zip,/egbim/uploads/qa/1762220379_8d34a8ab_Desktop.zip,/home/b24014/egbim/egbim/uploads/qa/1762220379_8d34a8ab_Desktop.zip,EGBIM_QA/attachments/63.zip,2025-11-04 10:39:39,35887,24277d108e70dc96ee2701c5951e675ce9e4f9686ead77d717dc4bcc225d73fe,READY
|
||||
POST_ATTACHMENT,64,185,cmdeng 오류.png,/egbim/uploads/qa/1762306378_52bfa60c_cmdeng 오류.png,/home/b24014/egbim/egbim/uploads/qa/1762306378_52bfa60c_cmdeng 오류.png,EGBIM_QA/attachments/64.png,2025-11-05 10:32:58,92965,2414d305ccf20f1744cad78154721f5ad5723cd8957579ff23596d36670d3609,READY
|
||||
POST_ATTACHMENT,76,200,04 [Nose부] 교대 계획.dwg,/egbim/uploads/qa/1762931252_7c4cc1ad_04 [Nose부] 교대 계획.dwg,/home/b24014/egbim/egbim/uploads/qa/1762931252_7c4cc1ad_04 [Nose부] 교대 계획.dwg,EGBIM_QA/attachments/76.dwg,2025-11-12 16:07:32,85120,cb7f598bc613a225e592aa2fd7f6a5c390717b8266ef56b8db32472810bf1328,READY
|
||||
POST_ATTACHMENT,78,203,낱 장 출력 위치도.pdf,/egbim/uploads/qa/1762995972_64932179_낱 장 출력 위치도.pdf,/home/b24014/egbim/egbim/uploads/qa/1762995972_64932179_낱 장 출력 위치도.pdf,EGBIM_QA/attachments/78.pdf,2025-11-13 10:06:12,10510536,3fb5f9954e1b34e8594660a4bcc78fb651c227acfd623b830920058274505f08,READY
|
||||
POST_ATTACHMENT,79,203,다중 출력 위치도.pdf,/egbim/uploads/qa/1762995972_fc075feb_다중 출력 위치도.pdf,/home/b24014/egbim/egbim/uploads/qa/1762995972_fc075feb_다중 출력 위치도.pdf,EGBIM_QA/attachments/79.pdf,2025-11-13 10:06:12,8231932,1e73fd31729ede3d95d04f18194d63f095646cc9e099e38aaa5a46fc4fd08141,READY
|
||||
POST_ATTACHMENT,80,207,캡처.JPG,/egbim/uploads/qa/1763080126_8f3e209b_캡처.JPG,/home/b24014/egbim/egbim/uploads/qa/1763080126_8f3e209b_캡처.JPG,EGBIM_QA/attachments/80.jpg,2025-11-14 09:28:46,47120,8da142fd6d2d724af36393a05085901d0def705f89c6a0760fcac9815f7fac5d,READY
|
||||
POST_ATTACHMENT,81,209,1.1.3 평면 및 종단면도 ( 이설도로 )_251113.dwg,/egbim/uploads/qa/1763084167_bf31b61b_1.1.3 평면 및 종단면도 ( 이설도로 )_251113.dwg,/home/b24014/egbim/egbim/uploads/qa/1763084167_bf31b61b_1.1.3 평면 및 종단면도 ( 이설도로 )_251113.dwg,EGBIM_QA/attachments/81.dwg,2025-11-14 10:36:07,3348687,d2dc2b488aef495e6cca22863eceee47dc195c6d53f55b5cd282436ac95fbd86,READY
|
||||
POST_ATTACHMENT,82,217,2025-11-21 15 59 21-ole 이미지 반전.png,/egbim/uploads/qa/1763708608_c78a8fdc_2025-11-21 15 59 21-ole 이미지 반전.png,/home/b24014/egbim/egbim/uploads/qa/1763708608_c78a8fdc_2025-11-21 15 59 21-ole 이미지 반전.png,EGBIM_QA/attachments/82.png,2025-11-21 16:03:28,494588,3a47c90b6f602d40ca88ef1140a7111be3fbf6b49f0a4030df84befd23d5dd4d,READY
|
||||
POST_ATTACHMENT,83,217,2025-11-21 15 59 22-ole 이미지 반전.png,/egbim/uploads/qa/1763708608_f56dffa1_2025-11-21 15 59 22-ole 이미지 반전.png,/home/b24014/egbim/egbim/uploads/qa/1763708608_f56dffa1_2025-11-21 15 59 22-ole 이미지 반전.png,EGBIM_QA/attachments/83.png,2025-11-21 16:03:28,544857,27e52f660ab99b026a9a673d278f30ea7425ba91071475c1daa0fe473adcc458,READY
|
||||
POST_ATTACHMENT,84,217,C0010201-002 표준횡단.dwg,/egbim/uploads/qa/1763708608_a4232f5d_C0010201-002 표준횡단.dwg,/home/b24014/egbim/egbim/uploads/qa/1763708608_a4232f5d_C0010201-002 표준횡단.dwg,EGBIM_QA/attachments/84.dwg,2025-11-21 16:03:28,3570944,15212fdae33a06a7bcfcc8a17bd03a20e4a35ac58668e55a3247ad5a60adfad1,READY
|
||||
POST_ATTACHMENT,85,217,C0010201-001 표준횡단.dwg,/egbim/uploads/qa/1763708608_3cec0dc6_C0010201-001 표준횡단.dwg,/home/b24014/egbim/egbim/uploads/qa/1763708608_3cec0dc6_C0010201-001 표준횡단.dwg,EGBIM_QA/attachments/85.dwg,2025-11-21 16:03:28,3409236,75874416e7c735de0affa628d9d318ee05ae26bee7eb1d6215db538efd5a20d2,READY
|
||||
POST_ATTACHMENT,86,219,오류 화면.jpg,/egbim/uploads/qa/1763966511_c1cbcc9a_오류 화면.jpg,/home/b24014/egbim/egbim/uploads/qa/1763966511_c1cbcc9a_오류 화면.jpg,EGBIM_QA/attachments/86.jpg,2025-11-24 15:41:51,59594,022bfe8468ea9370148a6527eec483d0e568b197e8d315f2c42bdc2b9f47212e,READY
|
||||
POST_ATTACHMENT,87,220,drpipe.zip,/egbim/uploads/qa/1764115615_3583a452_drpipe.zip,/home/b24014/egbim/egbim/uploads/qa/1764115615_3583a452_drpipe.zip,EGBIM_QA/attachments/87.zip,2025-11-26 09:06:55,339605,652da3d75733f34b4fffe995674ea1f32746f970b959ee433383572eb8b9e3a3,READY
|
||||
POST_ATTACHMENT,90,226,재료표.GIF,/egbim/uploads/qa/1764639405_21eea30b_재료표.GIF,/home/b24014/egbim/egbim/uploads/qa/1764639405_21eea30b_재료표.GIF,EGBIM_QA/attachments/90.gif,2025-12-02 10:36:45,24348,a8920bb763f529e2a06913deadac9af5f783b0dd8792377cd53294e00b8ffffe,READY
|
||||
POST_ATTACHMENT,91,230,레지스트리.reg,/egbim/uploads/qa/1764897735_d0e31216_레지스트리.reg,/home/b24014/egbim/egbim/uploads/qa/1764897735_d0e31216_레지스트리.reg,EGBIM_QA/attachments/91.reg,2025-12-05 10:22:15,152756,2ee19ea157f5cb6c477ab8442b79c6fd72749ebe8e881ec05780f178515c8007,READY
|
||||
POST_ATTACHMENT,92,230,투명도 테스트.zip,/egbim/uploads/qa/1764897735_c03445aa_투명도 테스트.zip,/home/b24014/egbim/egbim/uploads/qa/1764897735_c03445aa_투명도 테스트.zip,EGBIM_QA/attachments/92.zip,2025-12-05 10:22:15,28825,ab89166189b69fdc5fe9fbec4e70964121e5762a7d4fd0c7283bb1b26462ea1a,READY
|
||||
POST_ATTACHMENT,93,232,251204_법성홍농 노선도 - Standard.zip,/egbim/uploads/qa/1764910343_1bbd54b1_251204_법성홍농 노선도 - Standard.zip,/home/b24014/egbim/egbim/uploads/qa/1764910343_1bbd54b1_251204_법성홍농 노선도 - Standard.zip,EGBIM_QA/attachments/93.zip,2025-12-05 13:52:23,6360618,8cc0613a78533317337bfc46d06fd61fe8a2569039c43f9bf13928d8e6625b10,READY
|
||||
POST_ATTACHMENT,94,234,251205-PLOT 에러.png,/egbim/uploads/qa/1764914652_f04b4a86_251205-PLOT 에러.png,/home/b24014/egbim/egbim/uploads/qa/1764914652_f04b4a86_251205-PLOT 에러.png,EGBIM_QA/attachments/94.png,2025-12-05 15:04:12,27223,073680dd4a3e06a61c8857f53b8afb775669c0c951a0308da147a025f852f328,READY
|
||||
POST_ATTACHMENT,95,235,접근수로굴착.png,/egbim/uploads/qa/1765150284_cf844a42_접근수로굴착.png,/home/b24014/egbim/egbim/uploads/qa/1765150284_cf844a42_접근수로굴착.png,EGBIM_QA/attachments/95.png,2025-12-08 08:31:24,72253,10a212e1394885fafee068d6c3f521f43d34eb988a1fb735d22253bfdda74c2e,READY
|
||||
POST_ATTACHMENT,96,236,251209-APPLOAD 삭제안됨.png,/egbim/uploads/qa/1765263376_c2257846_251209-APPLOAD 삭제안됨.png,/home/b24014/egbim/egbim/uploads/qa/1765263376_c2257846_251209-APPLOAD 삭제안됨.png,EGBIM_QA/attachments/96.png,2025-12-09 15:56:16,24197,de32b3cc67cceabccc0c34e420c79688e00b4d81ecf3b8d13bafaaf87d9fcf86,READY
|
||||
POST_ATTACHMENT,97,238,캡처.JPG,/egbim/uploads/qa/1765340027_090d3d58_캡처.JPG,/home/b24014/egbim/egbim/uploads/qa/1765340027_090d3d58_캡처.JPG,EGBIM_QA/attachments/97.jpg,2025-12-10 13:13:47,100954,b2f2635be4ae5eff14e2f3e637e8b91a60f2ad7336106e06e4fac8f1aca99d56,READY
|
||||
POST_ATTACHMENT,98,244,K-005.jpg,/egbim/uploads/qa/1765930308_f50ba94d_K-005.jpg,/home/b24014/egbim/egbim/uploads/qa/1765930308_f50ba94d_K-005.jpg,EGBIM_QA/attachments/98.jpg,2025-12-17 09:11:48,169787,455f971e7ba45b31602080f6e5b350400beb0bbb699e2f17a1b02a4a6cf9a4c9,READY
|
||||
POST_ATTACHMENT,99,244,K-006.jpg,/egbim/uploads/qa/1765930308_40e06ea6_K-006.jpg,/home/b24014/egbim/egbim/uploads/qa/1765930308_40e06ea6_K-006.jpg,EGBIM_QA/attachments/99.jpg,2025-12-17 09:11:48,103420,ffb3c5281d6fe6ff1f280cf3cd784c856c435de40c29502011fdd250aa4b79b6,READY
|
||||
POST_ATTACHMENT,100,246,종전선형_종점부 R380.v2.dwg,/egbim/uploads/qa/1766103781_de024878_종전선형_종점부 R380.v2.dwg,/home/b24014/egbim/egbim/uploads/qa/1766103781_de024878_종전선형_종점부 R380.v2.dwg,EGBIM_QA/attachments/100.dwg,2025-12-19 09:23:01,484386,ccb4ab92d69bd0deafc340ce883aae2466daf9236518172096f86b1770573eef,READY
|
||||
POST_ATTACHMENT,101,252,Drawing2.dwg,/egbim/uploads/qa/1767073250_0d62554c_Drawing2.dwg,/home/b24014/egbim/egbim/uploads/qa/1767073250_0d62554c_Drawing2.dwg,EGBIM_QA/attachments/101.dwg,2025-12-30 14:40:50,21094,16cb39a5edfda45cefbc4ca787a597c343cf89d32e6c30da5437ba46b9c2c87e,READY
|
||||
POST_ATTACHMENT,102,252,레지스트리.reg,/egbim/uploads/qa/1767145062_3500f2f2_레지스트리.reg,/home/b24014/egbim/egbim/uploads/qa/1767145062_3500f2f2_레지스트리.reg,EGBIM_QA/attachments/102.reg,2025-12-31 10:37:42,1097690,81df65dd872837757177d21350b839dd5c1e9faa26afef2ef25267d7e550ef83,READY
|
||||
POST_ATTACHMENT,103,256,251229 계획평면도.zip,/egbim/uploads/qa/1767155743_d39452b7_251229 계획평면도.zip,/home/b24014/egbim/egbim/uploads/qa/1767155743_d39452b7_251229 계획평면도.zip,EGBIM_QA/attachments/103.zip,2025-12-31 13:35:43,10897836,918a2b50758b902dcd771af225cbebc535c39b3ef56e8e8d8774c8f77998d58f,READY
|
||||
POST_ATTACHMENT,104,256,그리미 도곽인식.png,/egbim/uploads/qa/1767155743_927e0f46_그리미 도곽인식.png,/home/b24014/egbim/egbim/uploads/qa/1767155743_927e0f46_그리미 도곽인식.png,EGBIM_QA/attachments/104.png,2025-12-31 13:35:43,705433,a993a0ffba58877c0301176884f5413605c23c935748bd09daf971d4212343e1,READY
|
||||
POST_ATTACHMENT,105,256,꾸러미 도곽미인식.png,/egbim/uploads/qa/1767155743_f44ab477_꾸러미 도곽미인식.png,/home/b24014/egbim/egbim/uploads/qa/1767155743_f44ab477_꾸러미 도곽미인식.png,EGBIM_QA/attachments/105.png,2025-12-31 13:35:43,230175,9f0586b0dc978ec2f21a8b630c24f4e8e5469d62406ea4811dd85615aadf1395,READY
|
||||
POST_ATTACHMENT,106,257,Drawing1.dwg,/egbim/uploads/qa/1767158131_7aa37d15_Drawing1.dwg,/home/b24014/egbim/egbim/uploads/qa/1767158131_7aa37d15_Drawing1.dwg,EGBIM_QA/attachments/106.dwg,2025-12-31 14:15:31,4598337,5b2b55b3848b3f3d6c279d0ecc413107c33ab0159f15a2d8486380565b734e93,READY
|
||||
POST_ATTACHMENT,107,259,연결형태1.jpg,/egbim/uploads/qa/1767662345_cdb9e917_연결형태1.jpg,/home/b24014/egbim/egbim/uploads/qa/1767662345_cdb9e917_연결형태1.jpg,EGBIM_QA/attachments/107.jpg,2026-01-06 10:19:05,254537,1ecb7caf102cb691b7f520b38f08596be82c5e92e6003ca4cb59a26e40028da3,READY
|
||||
POST_ATTACHMENT,108,259,연결형태2.jpg,/egbim/uploads/qa/1767662345_9c898847_연결형태2.jpg,/home/b24014/egbim/egbim/uploads/qa/1767662345_9c898847_연결형태2.jpg,EGBIM_QA/attachments/108.jpg,2026-01-06 10:19:05,253888,e70f25e79b4f002ae5501d419846b1d3690f9140014b46a065830b51b5571e6f,READY
|
||||
POST_ATTACHMENT,109,259,연결형태3.jpg,/egbim/uploads/qa/1767662345_98cc7b6c_연결형태3.jpg,/home/b24014/egbim/egbim/uploads/qa/1767662345_98cc7b6c_연결형태3.jpg,EGBIM_QA/attachments/109.jpg,2026-01-06 10:19:05,255501,8d63f90f26d6bbc543f12c5b9efeae2260e0641d178022887f0e8954516db10c,READY
|
||||
POST_ATTACHMENT,110,259,대산당진(2공구) 사업구역경계.dxf,/egbim/uploads/qa/1767676611_e77245bb_대산당진(2공구) 사업구역경계.dxf,/home/b24014/egbim/egbim/uploads/qa/1767676611_e77245bb_대산당진(2공구) 사업구역경계.dxf,EGBIM_QA/attachments/110.dxf,2026-01-06 14:16:51,7862979,0aa7ca332109c492430755e958bb3dafc474f90cf673d6c288770bf95ed215fb,READY
|
||||
POST_ATTACHMENT,111,265,Water Storage Longitudinal & Cross Sections.dwg,/egbim/uploads/qa/1767859318_7cc89086_Water Storage Longitudinal & Cross Sections.dwg,/home/b24014/egbim/egbim/uploads/qa/1767859318_7cc89086_Water Storage Longitudinal & Cross Sections.dwg,EGBIM_QA/attachments/111.dwg,2026-01-08 17:01:58,4280504,7516d4a2efff89caae9bda7b35c7484996abd89c5110de7e6497fa6f06d7f7f6,READY
|
||||
POST_ATTACHMENT,112,268,20260112_170637.jpg,/egbim/uploads/qa/1768205263_a6745bff_20260112_170637.jpg,/home/b24014/egbim/egbim/uploads/qa/1768205263_a6745bff_20260112_170637.jpg,EGBIM_QA/attachments/112.jpg,2026-01-12 17:07:43,35685,e757b8f5980ef80dcd070083eeef1bf151c4aa7ca051868085d93d649797d73d,READY
|
||||
POST_ATTACHMENT,113,271,qna.reg,/egbim/uploads/qa/1769129489_51c6c5a1_qna.reg,/home/b24014/egbim/egbim/uploads/qa/1769129489_51c6c5a1_qna.reg,EGBIM_QA/attachments/113.reg,2026-01-23 09:51:29,1570848,c1ca162c3fec26a1da027836241c492dd4be6a057395ea24d819ca4b92fce125,READY
|
||||
POST_ATTACHMENT,114,271,선스타일.dwg,/egbim/uploads/qa/1769129489_9450dfb2_선스타일.dwg,/home/b24014/egbim/egbim/uploads/qa/1769129489_9450dfb2_선스타일.dwg,EGBIM_QA/attachments/114.dwg,2026-01-23 09:51:29,38956,aa7fc34db90647c45599c859694011d40224bb401328a6791e364dbfa05db191,READY
|
||||
POST_ATTACHMENT,115,272,스크린샷 2026-01-26 163117.png,/egbim/uploads/qa/1769412837_97587903_스크린샷 2026-01-26 163117.png,/home/b24014/egbim/egbim/uploads/qa/1769412837_97587903_스크린샷 2026-01-26 163117.png,EGBIM_QA/attachments/115.png,2026-01-26 16:33:57,190854,2e89948f9f7d7a639838b9bd11c457563215214b9f8cb376efe272d9d7aa1f4b,READY
|
||||
POST_ATTACHMENT,116,272,01.외관조사망도_석문국가산단 배수갑문(2025-상반기).dwg,/egbim/uploads/qa/1769413152_e9650533_01.외관조사망도_석문국가산단 배수갑문(2025-상반기).dwg,/home/b24014/egbim/egbim/uploads/qa/1769413152_e9650533_01.외관조사망도_석문국가산단 배수갑문(2025-상반기).dwg,EGBIM_QA/attachments/116.dwg,2026-01-26 16:39:12,6059813,cae1942f52eedbd92510b7c2568fc12230eb1622ddf8cc09f3dd2b7f726cbd4d,READY
|
||||
POST_ATTACHMENT,117,276,04 부대공.zip,/egbim/uploads/qa/1770021557_40ef19e5_04 부대공.zip,/home/b24014/egbim/egbim/uploads/qa/1770021557_40ef19e5_04 부대공.zip,EGBIM_QA/attachments/117.zip,2026-02-02 17:39:17,3622415,3c8efc54ecf89e5056e123fb02a73d643f6607656a32ee541edb5ee40fcf200e,READY
|
||||
POST_ATTACHMENT,118,277,01.위치도(동량~산척)_착수보고 PPT-배치1_캐드 플롯.jpg,/egbim/uploads/qa/1770093029_aaf275ad_01.위치도(동량~산척)_착수보고 PPT-배치1_캐드 플롯.jpg,/home/b24014/egbim/egbim/uploads/qa/1770093029_aaf275ad_01.위치도(동량~산척)_착수보고 PPT-배치1_캐드 플롯.jpg,EGBIM_QA/attachments/118.jpg,2026-02-03 13:30:29,5412828,b4e5e7c11ecc8a431263bb98305584295b8c297a7d1cffd62644590e55c121af,READY
|
||||
POST_ATTACHMENT,119,277,01.위치도(동량~산척)_착수보고 PPT-배치1_이지빔.jpg,/egbim/uploads/qa/1770093029_a394ad6e_01.위치도(동량~산척)_착수보고 PPT-배치1_이지빔.jpg,/home/b24014/egbim/egbim/uploads/qa/1770093029_a394ad6e_01.위치도(동량~산척)_착수보고 PPT-배치1_이지빔.jpg,EGBIM_QA/attachments/119.jpg,2026-02-03 13:30:29,9979649,ba29439563bd83710ec96786e0295ac8008041beaca3d2a4ee324e6003623346,READY
|
||||
POST_ATTACHMENT,120,278,모델기반 11+600~12+540_SavedWithErrors.dwg,/egbim/uploads/qa/1770098361_d6b40f10_모델기반 11+600~12+540_SavedWithErrors.dwg,/home/b24014/egbim/egbim/uploads/qa/1770098361_d6b40f10_모델기반 11+600~12+540_SavedWithErrors.dwg,EGBIM_QA/attachments/120.dwg,2026-02-03 14:59:21,9081562,9de915baab97aabc179173fc7113ad0a0f0437d1b34ba14274a79340820ae049,READY
|
||||
POST_ATTACHMENT,121,278,모델기반 11+600~12+540_SavedWithErrors1.dwg,/egbim/uploads/qa/1770098361_3f0f5821_모델기반 11+600~12+540_SavedWithErrors1.dwg,/home/b24014/egbim/egbim/uploads/qa/1770098361_3f0f5821_모델기반 11+600~12+540_SavedWithErrors1.dwg,EGBIM_QA/attachments/121.dwg,2026-02-03 14:59:21,9081562,c19979b840d1e56009c3fc8d3303b32e6e9b73b11218b1d2f9d14c2cfbc6ac69,READY
|
||||
POST_ATTACHMENT,122,279,KakaoTalk_20260203_153624358.png,/egbim/uploads/qa/1770100639_0390a4a7_KakaoTalk_20260203_153624358.png,/home/b24014/egbim/egbim/uploads/qa/1770100639_0390a4a7_KakaoTalk_20260203_153624358.png,EGBIM_QA/attachments/122.png,2026-02-03 15:37:19,258015,49db96325aca81ac14edd99e5396dfa0abcd172c9129f3fe9ec4694aed75a7a1,READY
|
||||
POST_ATTACHMENT,123,287,[도면] BIM_대호지교 시점부(A1) 배근도.dwg,/egbim/uploads/qa/1770770865_adf31164_[도면] BIM_대호지교 시점부(A1) 배근도.dwg,/home/b24014/egbim/egbim/uploads/qa/1770770865_adf31164_[도면] BIM_대호지교 시점부(A1) 배근도.dwg,EGBIM_QA/attachments/123.dwg,2026-02-11 09:47:45,3114270,23fee231a2a324b9d7d239e02fcc98ea2ad3f24b9efc7755a55a555a45186ae8,READY
|
||||
POST_ATTACHMENT,124,289,20260211_113953.png,/egbim/uploads/qa/1770777674_f0db5b88_20260211_113953.png,/home/b24014/egbim/egbim/uploads/qa/1770777674_f0db5b88_20260211_113953.png,EGBIM_QA/attachments/124.png,2026-02-11 11:41:14,754900,8f2d3caf1a31042a78984203b5be7d0de36f7fffe139a258eeb3063c8aafda17,READY
|
||||
POST_ATTACHMENT,125,289,동산 소하천 보고용 판넬_20250623.dwg,/egbim/uploads/qa/1770777674_32be061c_동산 소하천 보고용 판넬_20250623.dwg,/home/b24014/egbim/egbim/uploads/qa/1770777674_32be061c_동산 소하천 보고용 판넬_20250623.dwg,EGBIM_QA/attachments/125.dwg,2026-02-11 11:41:14,7069368,e264e4b03765b931d33f5cdc731b5f801b2e9d497397f79a19ca33ac34a796d0,READY
|
||||
POST_ATTACHMENT,126,294,충북도_5000-Layout 01_이지빔 플롯.pdf,/egbim/uploads/qa/1770981372_54c28382_충북도_5000-Layout 01_이지빔 플롯.pdf,/home/b24014/egbim/egbim/uploads/qa/1770981372_54c28382_충북도_5000-Layout 01_이지빔 플롯.pdf,EGBIM_QA/attachments/126.pdf,2026-02-13 20:16:12,13127850,c04950bf5fd4fcbecb3f69011cd314dc4e0e6b19afba4d8689ec8a9c589ebedb,READY
|
||||
POST_ATTACHMENT,127,294,충북도_5000 Layout 01_캐드 플롯.pdf,/egbim/uploads/qa/1770981372_5880c2a7_충북도_5000 Layout 01_캐드 플롯.pdf,/home/b24014/egbim/egbim/uploads/qa/1770981372_5880c2a7_충북도_5000 Layout 01_캐드 플롯.pdf,EGBIM_QA/attachments/127.pdf,2026-02-13 20:16:12,20443647,41f093151ab26b03ffd313cc5278b0e41b76cd808ec234902bea632dbc54319b,READY
|
||||
POST_ATTACHMENT,128,297,라이센스 만료.png,/egbim/uploads/qa/1771812094_80f52127_라이센스 만료.png,/home/b24014/egbim/egbim/uploads/qa/1771812094_80f52127_라이센스 만료.png,EGBIM_QA/attachments/128.png,2026-02-23 11:01:34,317079,3f46901ecc0389adc2c9c0e5f9a1d4e7f115a32c259ba7bb79c4d34a85048b3e,READY
|
||||
POST_ATTACHMENT,129,298,OLE파일 뒤집힘.png,/egbim/uploads/qa/1771912769_2573bcc0_OLE파일 뒤집힘.png,/home/b24014/egbim/egbim/uploads/qa/1771912769_2573bcc0_OLE파일 뒤집힘.png,EGBIM_QA/attachments/129.png,2026-02-24 14:59:29,106954,131a192c3562ab7af38b8c6bca43a8b78e2e0e0a59845beca851a0b9b42b0c13,READY
|
||||
POST_ATTACHMENT,130,299,1.JPG,/egbim/uploads/qa/1771931821_2bd2f028_1.JPG,/home/b24014/egbim/egbim/uploads/qa/1771931821_2bd2f028_1.JPG,EGBIM_QA/attachments/130.jpg,2026-02-24 20:17:01,30646,021798720afb973ef9f8e476f5943ddc6f465d68f058831041de9cf7a361b274,READY
|
||||
POST_ATTACHMENT,131,299,2.JPG,/egbim/uploads/qa/1771931821_2db1fc02_2.JPG,/home/b24014/egbim/egbim/uploads/qa/1771931821_2db1fc02_2.JPG,EGBIM_QA/attachments/131.jpg,2026-02-24 20:17:01,48756,efeed26af06ac86da0b4782b556e155870a0e186428ef5e74c412b99faac4793,READY
|
||||
POST_ATTACHMENT,132,307,Capture_2026_0304_085418.jpeg,/egbim/uploads/qa/1772589489_58166209_Capture_2026_0304_085418.jpeg,/home/b24014/egbim/egbim/uploads/qa/1772589489_58166209_Capture_2026_0304_085418.jpeg,EGBIM_QA/attachments/132.jpeg,2026-03-04 10:58:09,15240,70c38095a169c89ae98b0c5664ee21043889380b1b0a8d466c76274c2f9d5096,READY
|
||||
POST_ATTACHMENT,133,308,73-1.표지판삽도_ver1.0 (1)-Model.pdf,/egbim/uploads/qa/1772600223_dd899df7_73-1.표지판삽도_ver1.0 (1)-Model.pdf,/home/b24014/egbim/egbim/uploads/qa/1772600223_dd899df7_73-1.표지판삽도_ver1.0 (1)-Model.pdf,EGBIM_QA/attachments/133.pdf,2026-03-04 13:57:03,65864,b0b2ae1b276b846472089515c9a94b413df29b94d1d63b0a87971680b9db7157,READY
|
||||
POST_ATTACHMENT,134,314,SAMPLE.dwg,/egbim/uploads/qa/1773023518_37a3c762_SAMPLE.dwg,/home/b24014/egbim/egbim/uploads/qa/1773023518_37a3c762_SAMPLE.dwg,EGBIM_QA/attachments/134.dwg,2026-03-09 11:31:58,364583,e1c5f6b6e05df5c27917722ce935fec2caf516a8b64dadf1ada3b9414162c4e5,READY
|
||||
POST_ATTACHMENT,135,315,xr_5000도 - Standard.zip,/egbim/uploads/qa/1773031430_e95b4590_xr_5000도 - Standard.zip,/home/b24014/egbim/egbim/uploads/qa/1773031430_e95b4590_xr_5000도 - Standard.zip,EGBIM_QA/attachments/135.zip,2026-03-09 13:43:50,23926222,05674a08d619826b89654535bee3bf3b7b9e21241309d447bd70ad7505e4e2e4,READY
|
||||
POST_ATTACHMENT,136,314,221.reg,/egbim/uploads/qa/1773036532_bb72f2b6_221.reg,/home/b24014/egbim/egbim/uploads/qa/1773036532_bb72f2b6_221.reg,EGBIM_QA/attachments/136.reg,2026-03-09 15:08:52,1659696,52e33ed1fc8c9e89e1220cad80a8b4b5599825440599a91db9ecae07615671b4,READY
|
||||
POST_ATTACHMENT,137,320,image01.png,/egbim/uploads/qa/1773107400_47a5874c_image01.png,/home/b24014/egbim/egbim/uploads/qa/1773107400_47a5874c_image01.png,EGBIM_QA/attachments/137.png,2026-03-10 10:50:00,76000,c4c57b7ec1eb76eb4b568c37102b6cfc7a4130f7bda0784a6946bcc9311c354b,READY
|
||||
POST_ATTACHMENT,138,321,오류.JPG,/egbim/uploads/qa/1773110406_f0a0aaab_오류.JPG,/home/b24014/egbim/egbim/uploads/qa/1773110406_f0a0aaab_오류.JPG,EGBIM_QA/attachments/138.jpg,2026-03-10 11:40:06,15771,958b17b03737d72f71354a3c58efc183853c7b539d8aabd59ca484f838076190,READY
|
||||
POST_ATTACHMENT,139,321,오류-2.JPG,/egbim/uploads/qa/1773110406_dcbd32e4_오류-2.JPG,/home/b24014/egbim/egbim/uploads/qa/1773110406_dcbd32e4_오류-2.JPG,EGBIM_QA/attachments/139.jpg,2026-03-10 11:40:06,21835,e94f71b21a6477be83c0ab698d85b638135a9fd946957ecb0f44928a4554c4f4,READY
|
||||
POST_ATTACHMENT,140,327,[남양주시] 남양주왕숙2 공공주택지구(4326).dxf,/egbim/uploads/qa/1773204441_94408044_[남양주시] 남양주왕숙2 공공주택지구(4326).dxf,/home/b24014/egbim/egbim/uploads/qa/1773204441_94408044_[남양주시] 남양주왕숙2 공공주택지구(4326).dxf,EGBIM_QA/attachments/140.dxf,2026-03-11 13:47:21,43114,bac090501bf2c8a409a1b380b6f497db42351aa1fbc58df4568e280f62ad6247,READY
|
||||
POST_ATTACHMENT,141,327,경계선 화면표시 왜곡.png,/egbim/uploads/qa/1773204441_5d81ff38_경계선 화면표시 왜곡.png,/home/b24014/egbim/egbim/uploads/qa/1773204441_5d81ff38_경계선 화면표시 왜곡.png,EGBIM_QA/attachments/141.png,2026-03-11 13:47:21,140235,7ebb7bd1ba03e94a5c55720701e464ab31129917e592149a86d54770f25b7988,READY
|
||||
POST_ATTACHMENT,142,330,캡처.JPG,/egbim/uploads/qa/1773276735_fb25c050_캡처.JPG,/home/b24014/egbim/egbim/uploads/qa/1773276735_fb25c050_캡처.JPG,EGBIM_QA/attachments/142.jpg,2026-03-12 09:52:15,97553,adb894bbc2d9b8d142df2c4a7bed90148eb29aaf7424e46b78e656f704228c15,READY
|
||||
POST_ATTACHMENT,144,337,#위치도 - Standard.zip,/egbim/uploads/qa/1773798816_89ad4aa6_#위치도 - Standard.zip,/home/b24014/egbim/egbim/uploads/qa/1773798816_89ad4aa6_#위치도 - Standard.zip,EGBIM_QA/attachments/144.zip,2026-03-18 10:53:36,19107361,3face2ed58a068c51f97fb9dba02edb5ef35e99280ea1344ee41b7e86286a69c,READY
|
||||
POST_ATTACHMENT,145,338,KakaoTalk_20260319_145034264.jpg,/egbim/uploads/qa/1773900161_53915f6e_KakaoTalk_20260319_145034264.jpg,/home/b24014/egbim/egbim/uploads/qa/1773900161_53915f6e_KakaoTalk_20260319_145034264.jpg,EGBIM_QA/attachments/145.jpg,2026-03-19 15:02:41,378049,79dc1a8a72a3d0f9a4ba6cdcbf39b09e9f84a6b557c27e0246d5be0545ccbc44,READY
|
||||
POST_ATTACHMENT,146,338,KakaoTalk_20260319_145034264_01.jpg,/egbim/uploads/qa/1773900161_3b1082f5_KakaoTalk_20260319_145034264_01.jpg,/home/b24014/egbim/egbim/uploads/qa/1773900161_3b1082f5_KakaoTalk_20260319_145034264_01.jpg,EGBIM_QA/attachments/146.jpg,2026-03-19 15:02:41,585362,e8ca291802ff49ed6e9ea5a824431d79104f5ad3288cd08f431a2d8c21a0f1db,READY
|
||||
POST_ATTACHMENT,147,339,첨부사진1.jpg,/egbim/uploads/qa/1773902591_57df1f0e_첨부사진1.jpg,/home/b24014/egbim/egbim/uploads/qa/1773902591_57df1f0e_첨부사진1.jpg,EGBIM_QA/attachments/147.jpg,2026-03-19 15:43:11,6617605,841698df6e91f4230e34513ea27109b33c239cebf390572afccf7bb58983e9e3,READY
|
||||
POST_ATTACHMENT,148,339,첨부사진2.jpg,/egbim/uploads/qa/1773902591_4feb8795_첨부사진2.jpg,/home/b24014/egbim/egbim/uploads/qa/1773902591_4feb8795_첨부사진2.jpg,EGBIM_QA/attachments/148.jpg,2026-03-19 15:43:11,6754195,0d04863f932fae8df98a10f7b2b18e3f02d7079e2797fac0dd3f4139e83811d8,READY
|
||||
POST_ATTACHMENT,149,339,첨부사진3.jpg,/egbim/uploads/qa/1773902591_a27c9ef4_첨부사진3.jpg,/home/b24014/egbim/egbim/uploads/qa/1773902591_a27c9ef4_첨부사진3.jpg,EGBIM_QA/attachments/149.jpg,2026-03-19 15:43:11,7161806,c86750d6bb5f705b8a31116934e3d68882562b85cafb19989ea85d562f00a5f2,READY
|
||||
POST_ATTACHMENT,150,340,1111.jpg,/egbim/uploads/qa/1773966469_12a2b062_1111.jpg,/home/b24014/egbim/egbim/uploads/qa/1773966469_12a2b062_1111.jpg,EGBIM_QA/attachments/150.jpg,2026-03-20 09:27:49,941277,144da3eb2d1689de5ebbd8ac2cee8fad55378720d402b133b0051c7c61247d3b,READY
|
||||
POST_ATTACHMENT,151,343,R1 단축키.reg,/egbim/uploads/qa/1774227996_f0503a4f_R1 단축키.reg,/home/b24014/egbim/egbim/uploads/qa/1774227996_f0503a4f_R1 단축키.reg,EGBIM_QA/attachments/151.reg,2026-03-23 10:06:36,492242,92f717665a024917e2a557fdbd6962c7f648a45e09c49bc1a27b931385dbf9d8,READY
|
||||
POST_ATTACHMENT,152,343,R1 단축키.hwp,/egbim/uploads/qa/1774227996_7f8b0fc5_R1 단축키.hwp,/home/b24014/egbim/egbim/uploads/qa/1774227996_7f8b0fc5_R1 단축키.hwp,EGBIM_QA/attachments/152.hwp,2026-03-23 10:06:36,95744,727f7ace62982fcfaba2e9277927787307e888c544a395bbf06770de91ec090e,READY
|
||||
POST_ATTACHMENT,153,347,사진1.png,/egbim/uploads/qa/1774414907_9dc0f797_사진1.png,/home/b24014/egbim/egbim/uploads/qa/1774414907_9dc0f797_사진1.png,EGBIM_QA/attachments/153.png,2026-03-25 14:01:47,147920,a3d98fac50a4c07676cffe87dc6f7a2b9b17964685d3092b14902c8f3836368e,READY
|
||||
POST_ATTACHMENT,154,347,사진2.png,/egbim/uploads/qa/1774414907_190050a8_사진2.png,/home/b24014/egbim/egbim/uploads/qa/1774414907_190050a8_사진2.png,EGBIM_QA/attachments/154.png,2026-03-25 14:01:47,149296,471d7341ca8afc0d43eb90538b686bac56c151d228838e1a5e15f5ecff99d591,READY
|
||||
POST_ATTACHMENT,156,352,20260401_150953.jpg,/egbim/uploads/qa/1775023822_2c7de3b2_20260401_150953.jpg,/home/b24014/egbim/egbim/uploads/qa/1775023822_2c7de3b2_20260401_150953.jpg,EGBIM_QA/attachments/156.jpg,2026-04-01 15:10:22,863604,22ded1013f48745ce1b47223a6ffdcd1909dbb241eebf040e65c82c0705575ce,READY
|
||||
POST_ATTACHMENT,157,354,장제로 측량현황도(2구간)_230612F(측량보완).dwg,/egbim/uploads/qa/1775090986_971be355_장제로 측량현황도(2구간)_230612F(측량보완).dwg,/home/b24014/egbim/egbim/uploads/qa/1775090986_971be355_장제로 측량현황도(2구간)_230612F(측량보완).dwg,EGBIM_QA/attachments/157.dwg,2026-04-02 09:49:46,3436308,a78606f1c9a5e360417bb53a513e94ae32fee354e039ef7f0e3dd147627aeaf8,READY
|
||||
POST_ATTACHMENT,158,355,20260403114033.jpg,/egbim/uploads/qa/1775184064_ea2f33e1_20260403114033.jpg,/home/b24014/egbim/egbim/uploads/qa/1775184064_ea2f33e1_20260403114033.jpg,EGBIM_QA/attachments/158.jpg,2026-04-03 11:41:04,124084,1f152bcf81ac58129532124f2827e5612844a1f6fbfee13d9c6c0c22be145ab6,READY
|
||||
POST_ATTACHMENT,159,355,Drawing1.dwg,/egbim/uploads/qa/1775184083_d66db56a_Drawing1.dwg,/home/b24014/egbim/egbim/uploads/qa/1775184083_d66db56a_Drawing1.dwg,EGBIM_QA/attachments/159.dwg,2026-04-03 11:41:23,76800,2926f7e37e6e07fbd145741b1f75cb944b1e746b7f2b45cd06b9553b61e695da,READY
|
||||
POST_ATTACHMENT,160,363,에러 화면 캡쳐.GIF,/egbim/uploads/qa/1776046918_888778ff_에러 화면 캡쳐.GIF,/home/b24014/egbim/egbim/uploads/qa/1776046918_888778ff_에러 화면 캡쳐.GIF,EGBIM_QA/attachments/160.gif,2026-04-13 11:21:58,48199,a35e0a1036123fc14cd67e92e3ac49c6886f15f42533e8bee17c5fa720e275b8,READY
|
||||
POST_ATTACHMENT,161,365,pl오류.dwg,/egbim/uploads/qa/1776126098_a3aa42b9_pl오류.dwg,/home/b24014/egbim/egbim/uploads/qa/1776126098_a3aa42b9_pl오류.dwg,EGBIM_QA/attachments/161.dwg,2026-04-14 09:21:38,9432604,05f3690fef35db2635ea0ed3e39085e7ce29f155a3805d317849e33fe6ca006b,READY
|
||||
POST_ATTACHMENT,162,370,취수통관 일반도.dwg,/egbim/uploads/qa/1776237707_cac90675_취수통관 일반도.dwg,/home/b24014/egbim/egbim/uploads/qa/1776237707_cac90675_취수통관 일반도.dwg,EGBIM_QA/attachments/162.dwg,2026-04-15 16:21:47,7338797,3238a580f95363c395d8083c57a8b9814103ee86180bccb540a58c918c3b39af,READY
|
||||
POST_ATTACHMENT,163,370,FIXVPORT.lsp,/egbim/uploads/qa/1776313758_50338ccd_FIXVPORT.lsp,/home/b24014/egbim/egbim/uploads/qa/1776313758_50338ccd_FIXVPORT.lsp,EGBIM_QA/attachments/163.lsp,2026-04-16 13:29:18,1550,15121c1776ef51f3cc46067009d8aede5989b96c968fb02ca185c34c06ad96f1,READY
|
||||
POST_ATTACHMENT,164,374,플롯 투명도 미적용.jpg,/egbim/uploads/qa/1776402611_020072af_플롯 투명도 미적용.jpg,/home/b24014/egbim/egbim/uploads/qa/1776402611_020072af_플롯 투명도 미적용.jpg,EGBIM_QA/attachments/164.jpg,2026-04-17 14:10:11,6383923,1293ea295d902ceff0c22d7cc1bc5681b45c7f5e03a0ee4a933ac765b2812221,READY
|
||||
POST_ATTACHMENT,165,374,플롯 투명도 적용.jpg,/egbim/uploads/qa/1776402611_81361a50_플롯 투명도 적용.jpg,/home/b24014/egbim/egbim/uploads/qa/1776402611_81361a50_플롯 투명도 적용.jpg,EGBIM_QA/attachments/165.jpg,2026-04-17 14:10:11,6474066,1cce8342bdb8807a694ae929bf8426577d2c6d814db538bc7dde910434ad1b59,READY
|
||||
POST_ATTACHMENT,166,375,객체스냅 잔상오류.JPG,/egbim/uploads/qa/1776413706_248fe7ee_객체스냅 잔상오류.JPG,/home/b24014/egbim/egbim/uploads/qa/1776413706_248fe7ee_객체스냅 잔상오류.JPG,EGBIM_QA/attachments/166.jpg,2026-04-17 17:15:06,36113,0ad5fed6e868621f9103c8b5636cb44a6109517b541fdaa746403a272739920f,READY
|
||||
POST_ATTACHMENT,167,376,스크린샷 2026-04-21 095747.png,/egbim/uploads/qa/1776733186_424f64a2_스크린샷 2026-04-21 095747.png,/home/b24014/egbim/egbim/uploads/qa/1776733186_424f64a2_스크린샷 2026-04-21 095747.png,EGBIM_QA/attachments/167.png,2026-04-21 09:59:46,14989,42e0aeb8b9858d64daec4098f74e35be1fc22efb7699cae002a9220276d031f7,READY
|
||||
POST_ATTACHMENT,168,378,[1.4.0.0.P.VC16.x64.RF111][AccessViolation][atio6axx.dll][7ffe5bccd1a4][2026-04-21][10.12.35].zip,/egbim/uploads/qa/1776766716_df575e28_[1.4.0.0.P.VC16.x64.RF111][AccessViolation][atio6axx.dll][7ffe5bccd1a4][2026-04-21][10.12.35].zip,/home/b24014/egbim/egbim/uploads/qa/1776766716_df575e28_[1.4.0.0.P.VC16.x64.RF111][AccessViolation][atio6axx.dll][7ffe5bccd1a4][2026-04-21][10.12.35].zip,EGBIM_QA/attachments/168.zip,2026-04-21 19:18:36,530581,00ed486bb01822eb2f8a7d881b2d9c9f49003898521cfed30852d1d627c3963c,READY
|
||||
POST_ATTACHMENT,169,379,260424_지하차도_형상기획_수정.dwg,/egbim/uploads/qa/1776998655_bcfd14d9_260424_지하차도_형상기획_수정.dwg,/home/b24014/egbim/egbim/uploads/qa/1776998655_bcfd14d9_260424_지하차도_형상기획_수정.dwg,EGBIM_QA/attachments/169.dwg,2026-04-24 11:44:15,1276553,83cb31161686eaa7cfb2822172ffb83a2340b501cbe1ed65e2d0ffb8881c7183,READY
|
||||
POST_ATTACHMENT,170,382,coordinates export 명령어 오류.png,/egbim/uploads/qa/1777267785_bec79089_coordinates export 명령어 오류.png,/home/b24014/egbim/egbim/uploads/qa/1777267785_bec79089_coordinates export 명령어 오류.png,EGBIM_QA/attachments/170.png,2026-04-27 14:29:45,4560,506fc8515bf3170710c72438e5d16cd7431040ac11d05d90ab9183ce3d429c15,READY
|
||||
POST_ATTACHMENT,171,383,삽도_항만1.dwg,/egbim/uploads/qa/1777270823_3a635eea_삽도_항만1.dwg,/home/b24014/egbim/egbim/uploads/qa/1777270823_3a635eea_삽도_항만1.dwg,EGBIM_QA/attachments/171.dwg,2026-04-27 15:20:23,804450,ac88121fe5c0f68ab61fed22844ddf73cfcdec9bb749ed76f0ea10f8a1cac671,READY
|
||||
POST_ATTACHMENT,172,389,EG-BIM 오류 사진.JPG,/egbim/uploads/qa/1778658428_e211433b_EG-BIM 오류 사진.JPG,/home/b24014/egbim/egbim/uploads/qa/1778658428_e211433b_EG-BIM 오류 사진.JPG,EGBIM_QA/attachments/172.jpg,2026-05-13 16:47:08,73973,b05e3e850a2bca6ed1a50252dfe0ba87d2e45cbe4b690821388ea481d86d4b89,READY
|
||||
POST_ATTACHMENT,175,390,화목나들목-EGBIM 오류보고용.dwg,/egbim/uploads/qa/1778660458_f476ed9a_화목나들목-EGBIM 오류보고용.dwg,/home/b24014/egbim/egbim/uploads/qa/1778660458_f476ed9a_화목나들목-EGBIM 오류보고용.dwg,EGBIM_QA/attachments/175.dwg,2026-05-13 17:20:58,77343,40237268afeabcfaeee6951c656468f9dc4febb9c8e98226a9bf6da5181146c2,READY
|
||||
POST_ATTACHMENT,176,390,화목나들목-EGBIM 오류보고용.dwg,/egbim/uploads/qa/1778660499_6f38cd60_화목나들목-EGBIM 오류보고용.dwg,/home/b24014/egbim/egbim/uploads/qa/1778660499_6f38cd60_화목나들목-EGBIM 오류보고용.dwg,EGBIM_QA/attachments/176.dwg,2026-05-13 17:21:39,77343,40237268afeabcfaeee6951c656468f9dc4febb9c8e98226a9bf6da5181146c2,READY
|
||||
POST_ATTACHMENT,177,390,GETIP_98.lsp,/egbim/uploads/qa/1778660499_b8b03fd6_GETIP_98.lsp,/home/b24014/egbim/egbim/uploads/qa/1778660499_b8b03fd6_GETIP_98.lsp,EGBIM_QA/attachments/177.lsp,2026-05-13 17:21:39,165924,27e6e136508a7cb59e27a5de5e381b16953c7e59e4113b3e63674dbaab077395,READY
|
||||
POST_ATTACHMENT,178,390,GETIP_98_메뉴얼.docx,/egbim/uploads/qa/1778660499_849c91fc_GETIP_98_메뉴얼.docx,/home/b24014/egbim/egbim/uploads/qa/1778660499_849c91fc_GETIP_98_메뉴얼.docx,EGBIM_QA/attachments/178.docx,2026-05-13 17:21:39,58867,afd0afeaf088e0058e457e33a6c4e660103848a7bab6cba08f326a7629054a7b,READY
|
||||
POST_ATTACHMENT,179,394,라이센스만료.jpg,/egbim/uploads/qa/1779264146_e0d2995e_라이센스만료.jpg,/home/b24014/egbim/egbim/uploads/qa/1779264146_e0d2995e_라이센스만료.jpg,EGBIM_QA/attachments/179.jpg,2026-05-20 17:02:26,91524,198f52e06dbf9de1325f75fae9c11e3bd51a68bbb1f165e30f4cac4dcdd39aac,READY
|
||||
POST_ATTACHMENT,180,395,스크린샷 2026-05-21 100324.png,/egbim/uploads/qa/1779325494_3a31f842_스크린샷 2026-05-21 100324.png,/home/b24014/egbim/egbim/uploads/qa/1779325494_3a31f842_스크린샷 2026-05-21 100324.png,EGBIM_QA/attachments/180.png,2026-05-21 10:04:54,14012,49dda271788a188005717723998aa1022bc28a21bdbcc7ce7259cb74af441c2c,READY
|
||||
POST_ATTACHMENT,181,395,스크린샷 2026-05-21 100321.png,/egbim/uploads/qa/1779325494_11ebfab5_스크린샷 2026-05-21 100321.png,/home/b24014/egbim/egbim/uploads/qa/1779325494_11ebfab5_스크린샷 2026-05-21 100321.png,EGBIM_QA/attachments/181.png,2026-05-21 10:04:54,13860,fb6907e21921016d561401319a350063221ca2cc3e715247364a316320abc69b,READY
|
||||
POST_ATTACHMENT,182,397,20260526_095314.png,/egbim/uploads/qa/1779756862_0d572e8d_20260526_095314.png,/home/b24014/egbim/egbim/uploads/qa/1779756862_0d572e8d_20260526_095314.png,EGBIM_QA/attachments/182.png,2026-05-26 09:54:22,20200,36e75055fbade2a0a441cf32aed206f483daea06c0beb41160fbe03e76494336,READY
|
||||
POST_ATTACHMENT,183,402,가이드.jpg,/egbim/uploads/qa/1780014799_545244bb_가이드.jpg,/home/b24014/egbim/egbim/uploads/qa/1780014799_545244bb_가이드.jpg,EGBIM_QA/attachments/183.jpg,2026-05-29 09:33:19,338193,06838837d04581bc700a964ad33d67db9d661be82abbde866b0f4d808f08a249,READY
|
||||
POST_ATTACHMENT,184,402,사용자 화면.jpg,/egbim/uploads/qa/1780014799_c801fad7_사용자 화면.jpg,/home/b24014/egbim/egbim/uploads/qa/1780014799_c801fad7_사용자 화면.jpg,EGBIM_QA/attachments/184.jpg,2026-05-29 09:33:19,93003,c29fe3d3ab85169abee38e19003d79184d12bbba922fdbbac567bd433d60b72d,READY
|
||||
POST_ATTACHMENT,185,403,KakaoTalk_20260601_111539096.png,/egbim/uploads/qa/1780280218_4c26ccca_KakaoTalk_20260601_111539096.png,/home/b24014/egbim/egbim/uploads/qa/1780280218_4c26ccca_KakaoTalk_20260601_111539096.png,EGBIM_QA/attachments/185.png,2026-06-01 11:16:58,279159,7b79ead79665318a1e73651a1eb1055739ed2520d8e30837cf5d6f2475244bc8,READY
|
||||
POST_ATTACHMENT,186,404,화면 캡처 2026-06-02 092930.png,/egbim/uploads/qa/1780360313_07bb49b7_화면 캡처 2026-06-02 092930.png,/home/b24014/egbim/egbim/uploads/qa/1780360313_07bb49b7_화면 캡처 2026-06-02 092930.png,EGBIM_QA/attachments/186.png,2026-06-02 09:31:53,32378,fc83ae8ef9f4fe4f3605707719b5dc8697a12a441540b57d89fa54825a206701,READY
|
||||
POST_ATTACHMENT,187,404,화면 캡처 2026-06-02 092947.png,/egbim/uploads/qa/1780360313_ade54746_화면 캡처 2026-06-02 092947.png,/home/b24014/egbim/egbim/uploads/qa/1780360313_ade54746_화면 캡처 2026-06-02 092947.png,EGBIM_QA/attachments/187.png,2026-06-02 09:31:53,32624,0c718e4c5a69ae7457c9e7ae4da3623d0675cfa2a0282e56982cf47e3b682f90,READY
|
||||
POST_ATTACHMENT,188,400,Template_2.1 배수유역도.dwg,/egbim/uploads/qa/1780531301_aac4c4cd_Template_2.1 배수유역도.dwg,/home/b24014/egbim/egbim/uploads/qa/1780531301_aac4c4cd_Template_2.1 배수유역도.dwg,EGBIM_QA/attachments/188.dwg,2026-06-04 09:01:41,29378984,cd3077319dff0fa7d75f19b9ffb20c309a78534276e36854a759109e1fbaa5c2,READY
|
||||
POST_ATTACHMENT,189,407,KakaoTalk_20260605_142943486.jpg,/egbim/uploads/qa/1780637503_892f16bb_KakaoTalk_20260605_142943486.jpg,/home/b24014/egbim/egbim/uploads/qa/1780637503_892f16bb_KakaoTalk_20260605_142943486.jpg,EGBIM_QA/attachments/189.jpg,2026-06-05 14:31:43,703573,ed7e93cfe49173b4e2c7c948af324b4c5614ea9c878f6e3c75c4d73c2b14ad85,READY
|
||||
POST_ATTACHMENT,190,407,KakaoTalk_20260605_142943486_01.jpg,/egbim/uploads/qa/1780637503_372f320a_KakaoTalk_20260605_142943486_01.jpg,/home/b24014/egbim/egbim/uploads/qa/1780637503_372f320a_KakaoTalk_20260605_142943486_01.jpg,EGBIM_QA/attachments/190.jpg,2026-06-05 14:31:43,664978,0804c807921f6fe03755b583cd61a0141d8db63b1eb1da0a39452dac33aa3d2a,READY
|
||||
POST_ATTACHMENT,192,412,화면 캡처 2026-06-11 174153.png,/egbim/uploads/qa/1781167325_5a9703b6_화면 캡처 2026-06-11 174153.png,/home/b24014/egbim/egbim/uploads/qa/1781167325_5a9703b6_화면 캡처 2026-06-11 174153.png,EGBIM_QA/attachments/192.png,2026-06-11 17:42:05,4681,3641828b91540c5c4a25151acf2a80f93a740054aa7051d26b23e4eb48de1b8b,READY
|
||||
POST_ATTACHMENT,193,414,01. GUI.png,/egbim/uploads/qa/1781835223_cc22b796_01. GUI.png,/home/b24014/egbim/egbim/uploads/qa/1781835223_cc22b796_01. GUI.png,EGBIM_QA/attachments/193.png,2026-06-19 11:13:43,9833,4121b7840b7e77235256515818c56b4351f8c7a65167e434df9f884bd134f2a1,READY
|
||||
POST_ATTACHMENT,194,414,02. 사용 전.png,/egbim/uploads/qa/1781835223_0deec111_02. 사용 전.png,/home/b24014/egbim/egbim/uploads/qa/1781835223_0deec111_02. 사용 전.png,EGBIM_QA/attachments/194.png,2026-06-19 11:13:43,402077,e05a9f994d23878a1f83f7ab794fc742cb1955b643449208a1b30d06bf44345a,READY
|
||||
POST_ATTACHMENT,195,414,03. 사용 후.png,/egbim/uploads/qa/1781835223_e88a8429_03. 사용 후.png,/home/b24014/egbim/egbim/uploads/qa/1781835223_e88a8429_03. 사용 후.png,EGBIM_QA/attachments/195.png,2026-06-19 11:13:43,1212504,27f8b4ec360acc3d092286bee90d1d126d4615dbdb4c91055a510ed224293858,READY
|
||||
POST_ATTACHMENT,196,414,run_app4.zip,/egbim/uploads/qa/1781835254_32c077c2_run_app4.zip,/home/b24014/egbim/egbim/uploads/qa/1781835254_32c077c2_run_app4.zip,EGBIM_QA/attachments/196.zip,2026-06-19 11:14:14,4950,103256f144f8ba51e301c5145b9193d27d68359591addee318f7b7a8379c839c,READY
|
||||
POST_ATTACHMENT,197,414,@결과물.zip,/egbim/uploads/qa/1781835687_796bf16f_@결과물.zip,/home/b24014/egbim/egbim/uploads/qa/1781835687_796bf16f_@결과물.zip,EGBIM_QA/attachments/197.zip,2026-06-19 11:21:27,15438858,5a2f7d9533ea54526728159b09d385d2a3687562cc3060e4b085da186cbeb640,READY
|
||||
POST_ATTACHMENT,198,415,캡처.PNG,/egbim/uploads/qa/1782265044_268704fe_캡처.PNG,/home/b24014/egbim/egbim/uploads/qa/1782265044_268704fe_캡처.PNG,EGBIM_QA/attachments/198.png,2026-06-24 10:37:24,176968,1dea4cd91e5fcce55d0e5138e817270066c36742ba7918ab2d579f1c656c59d3,READY
|
||||
POST_ATTACHMENT,199,416,26.06.23.[사연댐] 가설사무소.dwg,/egbim/uploads/qa/1782268644_6fac966e_26.06.23.[사연댐] 가설사무소.dwg,/home/b24014/egbim/egbim/uploads/qa/1782268644_6fac966e_26.06.23.[사연댐] 가설사무소.dwg,EGBIM_QA/attachments/199.dwg,2026-06-24 11:37:24,856626,204ddc38694f24ea2259d2efe82edd924c280ceffa92b73831865e6430a9bdeb,READY
|
||||
POST_ATTACHMENT,200,417,스크린샷 2026-06-25 071539.png,/egbim/uploads/qa/1782339640_a61cfc0f_스크린샷 2026-06-25 071539.png,/home/b24014/egbim/egbim/uploads/qa/1782339640_a61cfc0f_스크린샷 2026-06-25 071539.png,EGBIM_QA/attachments/200.png,2026-06-25 07:20:40,223886,36d3b8f9c0e4da121505611cda3788224116982dd38df0508bd8cd84b7fd1c50,READY
|
||||
POST_ATTACHMENT,201,419,화면 캡처 2026-06-29 101639.png,/egbim/uploads/qa/1782696867_10435be3_화면 캡처 2026-06-29 101639.png,/home/b24014/egbim/egbim/uploads/qa/1782696867_10435be3_화면 캡처 2026-06-29 101639.png,EGBIM_QA/attachments/201.png,2026-06-29 10:34:27,6649,07faa36974b18490bf648b488548c331cb455d49d1d73a09f78dfeb9c43a78c0,READY
|
||||
POST_ATTACHMENT,202,421,드림플러스 다중플롯.png,/egbim/uploads/qa/1782792569_95448cc4_드림플러스 다중플롯.png,/home/b24014/egbim/egbim/uploads/qa/1782792569_95448cc4_드림플러스 다중플롯.png,EGBIM_QA/attachments/202.png,2026-06-30 13:09:29,43509,2bc1acfee980a6267ade67a87ab8338e8ade20878af0418ad52793f85e372de9,READY
|
||||
POST_ATTACHMENT,203,423,화면 캡처 2026-07-01 144718.jpg,/egbim/uploads/qa/1782884844_dd63a83a_화면 캡처 2026-07-01 144718.jpg,/home/b24014/egbim/egbim/uploads/qa/1782884844_dd63a83a_화면 캡처 2026-07-01 144718.jpg,EGBIM_QA/attachments/203.jpg,2026-07-01 14:47:24,293809,5ccc4ab568fe2e501ce87a0affb1b0a055321d887d87b13ed933579c6ce7a1d5,READY
|
||||
POST_ATTACHMENT,204,424,강경보도육교 기초일반도 및 구조도.dwg,/egbim/uploads/qa/1782890640_53f8f297_강경보도육교 기초일반도 및 구조도.dwg,/home/b24014/egbim/egbim/uploads/qa/1782890640_53f8f297_강경보도육교 기초일반도 및 구조도.dwg,EGBIM_QA/attachments/204.dwg,2026-07-01 16:24:00,540872,7d2d1bcfe23042819e436c1aaea2f4f3fa1a251a44741b0b0b720c8620a10c95,READY
|
||||
POST_ATTACHMENT,205,426,K-002.png,/egbim/uploads/qa/1782951055_0bf4aa55_K-002.png,/home/b24014/egbim/egbim/uploads/qa/1782951055_0bf4aa55_K-002.png,EGBIM_QA/attachments/205.png,2026-07-02 09:10:55,28945,d9f832f8ac982bbe0d7f99ab810e00191928a151d9f4317db48ce34ab47b1ffd,READY
|
||||
POST_ATTACHMENT,206,430,스크린샷 2026-07-02 170745.png,/egbim/uploads/qa/1782979656_06e3abdc_스크린샷 2026-07-02 170745.png,/home/b24014/egbim/egbim/uploads/qa/1782979656_06e3abdc_스크린샷 2026-07-02 170745.png,EGBIM_QA/attachments/206.png,2026-07-02 17:07:36,246344,1d7f89223c98be22dd04b4ee8317a08ea51809905eef339eef6f6d94a0744cf4,READY
|
||||
POST_ATTACHMENT,207,431,오류사진.jpg,/egbim/uploads/qa/1783040005_9468e361_오류사진.jpg,/home/b24014/egbim/egbim/uploads/qa/1783040005_9468e361_오류사진.jpg,EGBIM_QA/attachments/207.jpg,2026-07-03 09:53:25,14300792,8c457222caea53e77e54ba61677bb6f786ecd112570441d95f4ff0c8a4819976,READY
|
||||
POST_ATTACHMENT,208,434,textmask 적용전.JPG,/egbim/uploads/qa/1783471005_8e35371c_textmask 적용전.JPG,/home/b24014/egbim/egbim/uploads/qa/1783471005_8e35371c_textmask 적용전.JPG,EGBIM_QA/attachments/208.jpg,2026-07-08 09:36:45,33475,7284708a229097dcd33f123cfcab0f39c1614a7951306485f81c312183a179a3,READY
|
||||
POST_ATTACHMENT,209,434,textmask 적용후.JPG,/egbim/uploads/qa/1783471005_339bbf33_textmask 적용후.JPG,/home/b24014/egbim/egbim/uploads/qa/1783471005_339bbf33_textmask 적용후.JPG,EGBIM_QA/attachments/209.jpg,2026-07-08 09:36:45,27083,2a29807d3a5a0bbf42745f357124786d9419e50a0b2637d5ecaf892700417642,READY
|
||||
POST_ATTACHMENT,210,435,bim.jpg,/egbim/uploads/qa/1783473276_b1063ad3_bim.jpg,/home/b24014/egbim/egbim/uploads/qa/1783473276_b1063ad3_bim.jpg,EGBIM_QA/attachments/210.jpg,2026-07-08 10:14:36,12667664,706c6f678ac9d511038e358e2115cc0263846ee072a8b8b1574812cbe93230bd,READY
|
||||
POST_ATTACHMENT,211,442,선꼴 다름 이슈.grm,/egbim/uploads/qa/1783673593_6f692e19_선꼴 다름 이슈.grm,/home/b24014/egbim/egbim/uploads/qa/1783673593_6f692e19_선꼴 다름 이슈.grm,EGBIM_QA/attachments/211.grm,2026-07-10 17:53:13,2112407,ef8fee5e1dea30f31f0096215daf08dc73434021f29b2163a4b5f8f8d4e545d3,READY
|
||||
POST_ATTACHMENT,212,447,화면 캡처 2026-07-14 083937.png,/egbim/uploads/qa/1783986125_f66db96d_화면 캡처 2026-07-14 083937.png,/home/b24014/egbim/egbim/uploads/qa/1783986125_f66db96d_화면 캡처 2026-07-14 083937.png,EGBIM_QA/attachments/212.png,2026-07-14 08:42:05,28036,161b0876f4992c84abb4a9ccde4baa502d11616c69d87bfed23f30674b5ea0a3,READY
|
||||
POST_ATTACHMENT,213,448,1783986125_f66db96d_화면 캡처 2026-07-14 083937.png,/egbim/uploads/qa/1783996847_3cb864ad_1783986125_f66db96d_화면 캡처 2026-07-14 083937.png,/home/b24014/egbim/egbim/uploads/qa/1783996847_3cb864ad_1783986125_f66db96d_화면 캡처 2026-07-14 083937.png,EGBIM_QA/attachments/213.png,2026-07-14 11:40:47,28036,161b0876f4992c84abb4a9ccde4baa502d11616c69d87bfed23f30674b5ea0a3,READY
|
||||
POST_ATTACHMENT,214,451,선꼴 2.grm,/egbim/uploads/qa/1784074055_e1e26cd0_선꼴 2.grm,/home/b24014/egbim/egbim/uploads/qa/1784074055_e1e26cd0_선꼴 2.grm,EGBIM_QA/attachments/214.grm,2026-07-15 09:07:35,76261,4bc135754b89ba21847ad2aebab2b7b1ca15af541ce10f8156c4e1c17b155960,READY
|
||||
POST_ATTACHMENT,215,451,선꼴 1.grm,/egbim/uploads/qa/1784074055_629de472_선꼴 1.grm,/home/b24014/egbim/egbim/uploads/qa/1784074055_629de472_선꼴 1.grm,EGBIM_QA/attachments/215.grm,2026-07-15 09:07:35,118820,f93670ba87ca71a2768d731b587b88851a0b8d492fa18fea55036d76bd632994,READY
|
||||
POST_ATTACHMENT,216,454,1.png,/egbim/uploads/qa/1784177112_ba1e5c61_1.png,/home/b24014/egbim/egbim/uploads/qa/1784177112_ba1e5c61_1.png,EGBIM_QA/attachments/216.png,2026-07-16 13:45:12,158133,15db3aec0617f72f7dea15ffbc0242097fe2635976f0d60b78f1cd1558d926d6,READY
|
||||
POST_ATTACHMENT,217,458,LISP파일_오류.dwg,/egbim/uploads/qa/1784510886_73b9362f_LISP파일_오류.dwg,/home/b24014/egbim/egbim/uploads/qa/1784510886_73b9362f_LISP파일_오류.dwg,EGBIM_QA/attachments/217.dwg,2026-07-20 10:28:06,2563303,13e72e81f4617a23d1f6136b3ed5e74ef28c704b5929b02d96a7922b214df0c2,READY
|
||||
POST_ATTACHMENT,218,458,횡단면_응용_v12.lsp,/egbim/uploads/qa/1784510886_fec62264_횡단면_응용_v12.lsp,/home/b24014/egbim/egbim/uploads/qa/1784510886_fec62264_횡단면_응용_v12.lsp,EGBIM_QA/attachments/218.lsp,2026-07-20 10:28:06,19689,07c1d42ee3e60b05c08afe7f77bf4b5f2053a1e5f4226936369e0b1e2fe60803,READY
|
||||
POST_ATTACHMENT,219,458,횡단면_응용_v12_설명서.hwp,/egbim/uploads/qa/1784510886_79385326_횡단면_응용_v12_설명서.hwp,/home/b24014/egbim/egbim/uploads/qa/1784510886_79385326_횡단면_응용_v12_설명서.hwp,EGBIM_QA/attachments/219.hwp,2026-07-20 10:28:06,1381376,7a9ad413f7eadf3c7c2b1973e090371abd73923e484d23605297438eb37ae9f7,READY
|
||||
POST_ATTACHMENT,220,459,EG-BIM Error .jpg,/egbim/uploads/qa/1784514329_6cd4a006_EG-BIM Error .jpg,/home/b24014/egbim/egbim/uploads/qa/1784514329_6cd4a006_EG-BIM Error .jpg,EGBIM_QA/attachments/220.jpg,2026-07-20 11:25:29,124291,77648a5bceb0c55983d8555a4975e4fcb161f1565c5f17293fc77550ba7e3190,READY
|
||||
POST_ATTACHMENT,221,460,260721 실행오류.png,/egbim/uploads/qa/1784627323_bd148faa_260721 실행오류.png,/home/b24014/egbim/egbim/uploads/qa/1784627323_bd148faa_260721 실행오류.png,EGBIM_QA/attachments/221.png,2026-07-21 18:48:43,105967,252c66af3d69b544828912f84c6158dcaed6be7240fceeb2c9c6ad3944c27ce4,READY
|
||||
POST_ATTACHMENT,222,461,K-001.png,/egbim/uploads/qa/1784627950_d6bf6930_K-001.png,/home/b24014/egbim/egbim/uploads/qa/1784627950_d6bf6930_K-001.png,EGBIM_QA/attachments/222.png,2026-07-21 18:59:10,59142,bf7abb7a909fd18dff9938ff95d9d0ee0b9f9aaff5f092e3de95cdc9e402f277,READY
|
||||
POST_ATTACHMENT,223,465,화면 캡처 2026-07-21 200406.jpg,/egbim/uploads/qa/1784631895_e867cfd4_화면 캡처 2026-07-21 200406.jpg,/home/b24014/egbim/egbim/uploads/qa/1784631895_e867cfd4_화면 캡처 2026-07-21 200406.jpg,EGBIM_QA/attachments/223.jpg,2026-07-21 20:04:55,80964,24fc811b1aca242b4cc8b832fbffe5555e18280db0e6368334526ee010793dd2,READY
|
||||
POST_ATTACHMENT,224,468,20260722_개선요청.png,/egbim/uploads/qa/1784680699_4eb104b1_20260722_개선요청.png,/home/b24014/egbim/egbim/uploads/qa/1784680699_4eb104b1_20260722_개선요청.png,EGBIM_QA/attachments/224.png,2026-07-22 09:38:19,40861,0617cb294c343ea34d7367e2ad219b3dc3fbd5b1e1f39e283b825fb719541645,READY
|
||||
POST_ATTACHMENT,225,469,K-001.png,/egbim/uploads/qa/1784772729_7283e321_K-001.png,/home/b24014/egbim/egbim/uploads/qa/1784772729_7283e321_K-001.png,EGBIM_QA/attachments/225.png,2026-07-23 11:12:09,122526,,MISSING
|
||||
COMMENT_IMAGE,17,349,참고 이미지.jpg,/egbim/uploads/comment/1763085474_8076e6.jpg,/home/b24014/egbim/egbim/uploads/comment/1763085474_8076e6.jpg,EGBIM_QA/comment-images/17.jpg,2025-11-14 10:57:54,327115,ae009f7049d5168d2ef2fc9380a83c1e3f4da613d080902a3764e50fc2e42754,READY
|
||||
COMMENT_THUMBNAIL,17,349,참고 이미지.jpg,/egbim/uploads/comment/thumb/thumb_1763085474_8076e6.jpg,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1763085474_8076e6.jpg,EGBIM_QA/comment-thumbnails/17.jpg,2025-11-14 10:57:54,6941,52c50ed6095d0c30b959adad072bde3235a4cdd7ed45f0feb632df829281e794,READY
|
||||
COMMENT_IMAGE,29,468,SecurityConfig.jpg,/uploads/comment/1765429765_3b7bdc.jpg,/home/b24014/egbim/egbim/uploads/comment/1765429765_3b7bdc.jpg,EGBIM_QA/comment-images/29.jpg,2025-12-11 14:09:25,49786,2987fcfda9a450f8ca1d140d1189f54c67ad06b32c89520504172d9a3255001f,READY
|
||||
COMMENT_THUMBNAIL,29,468,SecurityConfig.jpg,/uploads/comment/thumb/thumb_1765429765_3b7bdc.jpg,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1765429765_3b7bdc.jpg,EGBIM_QA/comment-thumbnails/29.jpg,2025-12-11 14:09:25,3902,2e2815ef4c1284d58d012acc3a1276c2eecb40e10f2d410835b39adf101a36fc,READY
|
||||
COMMENT_IMAGE,30,514,image06.png,/uploads/comment/1766533132_023fea.png,/home/b24014/egbim/egbim/uploads/comment/1766533132_023fea.png,EGBIM_QA/comment-images/30.png,2025-12-24 08:38:52,78462,f9c9269c4e89b5bbad705b78f206274c63402d269c7a32a4ef3d9916265199a2,READY
|
||||
COMMENT_THUMBNAIL,30,514,image06.png,/uploads/comment/thumb/thumb_1766533132_023fea.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1766533132_023fea.png,EGBIM_QA/comment-thumbnails/30.png,2025-12-24 08:38:52,6325,34d89346d2b3b8ea735714942722ce1a015f524f6bf02ef98f81caa745af5c68,READY
|
||||
COMMENT_IMAGE,31,514,image07.png,/uploads/comment/1766533132_cac55a.png,/home/b24014/egbim/egbim/uploads/comment/1766533132_cac55a.png,EGBIM_QA/comment-images/31.png,2025-12-24 08:38:52,130457,4d497d50db8fbdc144337f3e1908bb9f1205a7dccf41177002cfa376d15d5314,READY
|
||||
COMMENT_THUMBNAIL,31,514,image07.png,/uploads/comment/thumb/thumb_1766533132_cac55a.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1766533132_cac55a.png,EGBIM_QA/comment-thumbnails/31.png,2025-12-24 08:38:52,8904,264ccd217f5df73bfc8f14990fb72ca27280897b4cf3ea405fe9af1f8bcc5341,READY
|
||||
COMMENT_IMAGE,32,514,image08.png,/uploads/comment/1766533132_af27f5.png,/home/b24014/egbim/egbim/uploads/comment/1766533132_af27f5.png,EGBIM_QA/comment-images/32.png,2025-12-24 08:38:52,89328,ec7ce3d5555a024aaa0dbe6c8ec1117d71997aabb0e60d45b4d0073a437408a6,READY
|
||||
COMMENT_THUMBNAIL,32,514,image08.png,/uploads/comment/thumb/thumb_1766533132_af27f5.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1766533132_af27f5.png,EGBIM_QA/comment-thumbnails/32.png,2025-12-24 08:38:52,7719,f3286c2ba7cde7405bcae03b3b537a401307f533fb8e4ee694a07c4f30b2e474,READY
|
||||
COMMENT_IMAGE,33,523,명령어 선택 창.png,/uploads/comment/1767149478_b31be0.png,/home/b24014/egbim/egbim/uploads/comment/1767149478_b31be0.png,EGBIM_QA/comment-images/33.png,2025-12-31 11:51:18,31927,31faae37cd0f0267efd76a05ab26e618b6f9c9b9e266eb195e1eb3d773c19c87,READY
|
||||
COMMENT_THUMBNAIL,33,523,명령어 선택 창.png,/uploads/comment/thumb/thumb_1767149478_b31be0.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1767149478_b31be0.png,EGBIM_QA/comment-thumbnails/33.png,2025-12-31 11:51:18,4617,115560132eef797eaa10bbcae8b48b8171a48d1beeebe6a7b73794cbbbd34caa,READY
|
||||
COMMENT_IMAGE,36,551,탭1.PNG,/uploads/comment/1767764588_5ddc7e.png,/home/b24014/egbim/egbim/uploads/comment/1767764588_5ddc7e.png,EGBIM_QA/comment-images/36.png,2026-01-07 14:43:08,164678,80f51af777c389c9cf0d8cc5ff9c5c38cef0f799ea0a68f3c4ab89423d4f0658,READY
|
||||
COMMENT_THUMBNAIL,36,551,탭1.PNG,/uploads/comment/thumb/thumb_1767764588_5ddc7e.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1767764588_5ddc7e.png,EGBIM_QA/comment-thumbnails/36.png,2026-01-07 14:43:08,4634,4982093ed7b9495c0f028776e3cd0c9fff8f79be188e5d48e4cf71eb5dd8258c,READY
|
||||
COMMENT_IMAGE,37,551,탭2.PNG,/uploads/comment/1767764588_e4906a.png,/home/b24014/egbim/egbim/uploads/comment/1767764588_e4906a.png,EGBIM_QA/comment-images/37.png,2026-01-07 14:43:08,167078,c60132c43be5f5337ecb7d4bbccc465e922be755373ad94a13d7a5ac319345b5,READY
|
||||
COMMENT_THUMBNAIL,37,551,탭2.PNG,/uploads/comment/thumb/thumb_1767764588_e4906a.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1767764588_e4906a.png,EGBIM_QA/comment-thumbnails/37.png,2026-01-07 14:43:08,4537,812eb8144ddc16ccd638d8dc46a984ce323ff75adcd8b2017a4b395c0075f7de,READY
|
||||
COMMENT_IMAGE,38,571,qna271_키보드한글자판설정.png,/uploads/comment/1769390992_425f77.png,/home/b24014/egbim/egbim/uploads/comment/1769390992_425f77.png,EGBIM_QA/comment-images/38.png,2026-01-26 10:29:52,92293,438d4503b184e67b6401cbddf8abe4bb7d0cde8463b08b8971dc9e94b0a65287,READY
|
||||
COMMENT_THUMBNAIL,38,571,qna271_키보드한글자판설정.png,/uploads/comment/thumb/thumb_1769390992_425f77.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1769390992_425f77.png,EGBIM_QA/comment-thumbnails/38.png,2026-01-26 10:29:52,6926,c69d3162dec62c6425ade74ece8c35c98aff8679350f516e490e96636e5ee3cf,READY
|
||||
COMMENT_IMAGE,39,576,qna276_ole이미지뒤집힘_패치예정.png,/uploads/comment/1770074045_76f7e9.png,/home/b24014/egbim/egbim/uploads/comment/1770074045_76f7e9.png,EGBIM_QA/comment-images/39.png,2026-02-03 08:14:05,419325,f0b6905dd73c8b002ace827c66799722d610c471394ea379170d25adda2b23ca,READY
|
||||
COMMENT_THUMBNAIL,39,576,qna276_ole이미지뒤집힘_패치예정.png,/uploads/comment/thumb/thumb_1770074045_76f7e9.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1770074045_76f7e9.png,EGBIM_QA/comment-thumbnails/39.png,2026-02-03 08:14:05,5917,a6a5128b84dcf0d582e8d50bc9739de9a3a9a1e06514a8eb67ee5aad5e832788,READY
|
||||
COMMENT_IMAGE,40,582,qna281_자동저장파일.png,/uploads/comment/1770686612_69da20.png,/home/b24014/egbim/egbim/uploads/comment/1770686612_69da20.png,EGBIM_QA/comment-images/40.png,2026-02-10 10:23:32,28692,93d51296e16e5016c299a4fe575a696df22a91b78f41abd945ea9f035cabccb2,READY
|
||||
COMMENT_THUMBNAIL,40,582,qna281_자동저장파일.png,/uploads/comment/thumb/thumb_1770686612_69da20.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1770686612_69da20.png,EGBIM_QA/comment-thumbnails/40.png,2026-02-10 10:23:32,3673,ad00dc86a0d9c6970a5188f859233093d4fa6fd1857768301821a6ac713b11d7,READY
|
||||
COMMENT_IMAGE,41,582,qna281_자동저장설정.png,/uploads/comment/1770686612_9c3262.png,/home/b24014/egbim/egbim/uploads/comment/1770686612_9c3262.png,EGBIM_QA/comment-images/41.png,2026-02-10 10:23:32,206292,94a9e39d7c8bb4402882854bc881b688de779d2899640ad14384b70b34e02347,READY
|
||||
COMMENT_THUMBNAIL,41,582,qna281_자동저장설정.png,/uploads/comment/thumb/thumb_1770686612_9c3262.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1770686612_9c3262.png,EGBIM_QA/comment-thumbnails/41.png,2026-02-10 10:23:32,6118,fb6dba4d68f6a0ff162d4d79976b5c204ead0ac6a77ab0427dcf41c99f1f2352,READY
|
||||
COMMENT_IMAGE,42,584,qna281_자동저장파일.png,/uploads/comment/1770687456_bc9367.png,/home/b24014/egbim/egbim/uploads/comment/1770687456_bc9367.png,EGBIM_QA/comment-images/42.png,2026-02-10 10:37:36,28692,93d51296e16e5016c299a4fe575a696df22a91b78f41abd945ea9f035cabccb2,READY
|
||||
COMMENT_THUMBNAIL,42,584,qna281_자동저장파일.png,/uploads/comment/thumb/thumb_1770687456_bc9367.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1770687456_bc9367.png,EGBIM_QA/comment-thumbnails/42.png,2026-02-10 10:37:36,3673,ad00dc86a0d9c6970a5188f859233093d4fa6fd1857768301821a6ac713b11d7,READY
|
||||
COMMENT_IMAGE,43,584,qna281_자동저장설정.png,/uploads/comment/1770687456_a6ee52.png,/home/b24014/egbim/egbim/uploads/comment/1770687456_a6ee52.png,EGBIM_QA/comment-images/43.png,2026-02-10 10:37:36,206292,94a9e39d7c8bb4402882854bc881b688de779d2899640ad14384b70b34e02347,READY
|
||||
COMMENT_THUMBNAIL,43,584,qna281_자동저장설정.png,/uploads/comment/thumb/thumb_1770687456_a6ee52.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1770687456_a6ee52.png,EGBIM_QA/comment-thumbnails/43.png,2026-02-10 10:37:36,6118,fb6dba4d68f6a0ff162d4d79976b5c204ead0ac6a77ab0427dcf41c99f1f2352,READY
|
||||
COMMENT_IMAGE,44,618,image01.png,/uploads/comment/1772760182_7a1317.png,/home/b24014/egbim/egbim/uploads/comment/1772760182_7a1317.png,EGBIM_QA/comment-images/44.png,2026-03-06 10:23:02,37497,66c9dc2462af57fbf524489dc39210f09216cafec9e610d6071d345c679b6568,READY
|
||||
COMMENT_THUMBNAIL,44,618,image01.png,/uploads/comment/thumb/thumb_1772760182_7a1317.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1772760182_7a1317.png,EGBIM_QA/comment-thumbnails/44.png,2026-03-06 10:23:02,11567,f594477d20131e63ef4eb0ee4e672ea7561ff890cb472384355e104ab9a0b47c,READY
|
||||
COMMENT_IMAGE,45,647,qna327_DXF를dwg로변환후acad에서확인.png,/uploads/comment/1773207196_3238e3.png,/home/b24014/egbim/egbim/uploads/comment/1773207196_3238e3.png,EGBIM_QA/comment-images/45.png,2026-03-11 14:33:16,125198,43d058a775834642a2f27cce91baf90e538f6024c6be964485b214c817bc26be,READY
|
||||
COMMENT_THUMBNAIL,45,647,qna327_DXF를dwg로변환후acad에서확인.png,/uploads/comment/thumb/thumb_1773207196_3238e3.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1773207196_3238e3.png,EGBIM_QA/comment-thumbnails/45.png,2026-03-11 14:33:16,5254,ed87f5650fe86e3ab7f53101c08c9eff386c9cb6a1be26ced288f6eb9169034b,READY
|
||||
COMMENT_IMAGE,46,660,20260312_193835.jpg,/uploads/comment/1773311938_b8d5e5.jpg,/home/b24014/egbim/egbim/uploads/comment/1773311938_b8d5e5.jpg,EGBIM_QA/comment-images/46.jpg,2026-03-12 19:38:58,179050,79f21cf5d6a9e716d5ade2427e00ab045fd7e6fbb7377a331a83794f3c09e47d,READY
|
||||
COMMENT_THUMBNAIL,46,660,20260312_193835.jpg,/uploads/comment/thumb/thumb_1773311938_b8d5e5.jpg,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1773311938_b8d5e5.jpg,EGBIM_QA/comment-thumbnails/46.jpg,2026-03-12 19:38:58,2329,3d02504f202e81974003ad3be224ac23217e003f86f18a16ca088aad431acc4f,READY
|
||||
COMMENT_IMAGE,47,660,20260312_193757.jpg,/uploads/comment/1773311938_d6b915.jpg,/home/b24014/egbim/egbim/uploads/comment/1773311938_d6b915.jpg,EGBIM_QA/comment-images/47.jpg,2026-03-12 19:38:58,279660,3c0e0306d603002df6fad3fed79b613f7594d5fc698e8a39a6e9f26890807da7,READY
|
||||
COMMENT_THUMBNAIL,47,660,20260312_193757.jpg,/uploads/comment/thumb/thumb_1773311938_d6b915.jpg,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1773311938_d6b915.jpg,EGBIM_QA/comment-thumbnails/47.jpg,2026-03-12 19:38:58,5683,9cf109c906871b08dadf205eb65b80552144962ca54458947c5a571636fe05e7,READY
|
||||
COMMENT_IMAGE,48,662,qna329_FC입력시FCLOSEALL명령 자동완성.png,/uploads/comment/1773363803_cc944d.png,/home/b24014/egbim/egbim/uploads/comment/1773363803_cc944d.png,EGBIM_QA/comment-images/48.png,2026-03-13 10:03:23,4822,de8901d145e579b2159dcd1fd217213e666e494a3261bf1231cdec8d12b2034f,READY
|
||||
COMMENT_THUMBNAIL,48,662,qna329_FC입력시FCLOSEALL명령 자동완성.png,/uploads/comment/thumb/thumb_1773363803_cc944d.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1773363803_cc944d.png,EGBIM_QA/comment-thumbnails/48.png,2026-03-13 10:03:23,4686,02b565490f3b2530fb3b3e21922ee845c3c4602bc96de9e131c4c65b155928ca,READY
|
||||
COMMENT_IMAGE,49,668,qna322_별도 다중파일 작업중 창 켜지지 않음_테스트.png,/uploads/comment/1773724289_cfbc2e.png,/home/b24014/egbim/egbim/uploads/comment/1773724289_cfbc2e.png,EGBIM_QA/comment-images/49.png,2026-03-17 14:11:29,433220,d7121f06350210efbca5551f5ec7af79f7dbf88bdc076869c35a3a8239e4b0dd,READY
|
||||
COMMENT_THUMBNAIL,49,668,qna322_별도 다중파일 작업중 창 켜지지 않음_테스트.png,/uploads/comment/thumb/thumb_1773724289_cfbc2e.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1773724289_cfbc2e.png,EGBIM_QA/comment-thumbnails/49.png,2026-03-17 14:11:29,9128,27d63f7018369e3e7b360e9355a03bc85517bd5df34bb176b1837fad890f90e4,READY
|
||||
COMMENT_IMAGE,50,670,20260317_152313.jpg,/uploads/comment/1773728620_5187a7.jpg,/home/b24014/egbim/egbim/uploads/comment/1773728620_5187a7.jpg,EGBIM_QA/comment-images/50.jpg,2026-03-17 15:23:40,224029,d72548c84458a2e445cc923b4a28868addae3fed503aaf5611cfdb9dcd3550d2,READY
|
||||
COMMENT_THUMBNAIL,50,670,20260317_152313.jpg,/uploads/comment/thumb/thumb_1773728620_5187a7.jpg,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1773728620_5187a7.jpg,EGBIM_QA/comment-thumbnails/50.jpg,2026-03-17 15:23:40,4001,48bd5989722d804a7b8f08d4ebb5bd0c5f305d4155c904781e05dc64347ab083,READY
|
||||
COMMENT_IMAGE,51,680,qna342_acad와egbim색상비교 in layout.png,/uploads/comment/1773991755_62c265.png,/home/b24014/egbim/egbim/uploads/comment/1773991755_62c265.png,EGBIM_QA/comment-images/51.png,2026-03-20 16:29:15,324053,c391e420c433be069c3adbea5f0abf64cced250e324da5553075db9551aa07a2,READY
|
||||
COMMENT_THUMBNAIL,51,680,qna342_acad와egbim색상비교 in layout.png,/uploads/comment/thumb/thumb_1773991755_62c265.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1773991755_62c265.png,EGBIM_QA/comment-thumbnails/51.png,2026-03-20 16:29:15,3866,4a9c073e3125e82da6c40b916e570a379588a616bfdd5ca39be29e1422bd19b5,READY
|
||||
COMMENT_IMAGE,52,680,qna342_acad와egbim색상비교.png,/uploads/comment/1773991755_728a8a.png,/home/b24014/egbim/egbim/uploads/comment/1773991755_728a8a.png,EGBIM_QA/comment-images/52.png,2026-03-20 16:29:15,546625,2b00aa885149789e3269e467d961167e24c0e052eb2fa258358fd585bd8ca4a9,READY
|
||||
COMMENT_THUMBNAIL,52,680,qna342_acad와egbim색상비교.png,/uploads/comment/thumb/thumb_1773991755_728a8a.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1773991755_728a8a.png,EGBIM_QA/comment-thumbnails/52.png,2026-03-20 16:29:15,3983,0af22d6311bb0bee24d29114eadc2f966eff95b49d4f57b291d3e6a486bec841,READY
|
||||
COMMENT_IMAGE,53,683,qna343_단축키 숫자인식_20260323.png,/uploads/comment/1774224476_b4d7ac.png,/home/b24014/egbim/egbim/uploads/comment/1774224476_b4d7ac.png,EGBIM_QA/comment-images/53.png,2026-03-23 09:07:56,342797,591d3346c7548136efc3fcb022690608cefc7095adacade8814e0b1259ae4ccb,READY
|
||||
COMMENT_THUMBNAIL,53,683,qna343_단축키 숫자인식_20260323.png,/uploads/comment/thumb/thumb_1774224476_b4d7ac.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1774224476_b4d7ac.png,EGBIM_QA/comment-thumbnails/53.png,2026-03-23 09:07:56,3240,03c7e2b99cce5ee4eba0db0755a9945ffb7f2eb13b54fdfb65446b8d26fa11ec,READY
|
||||
COMMENT_IMAGE,54,685,qna346_egbim삭제후fonts폴더.png,/uploads/comment/1774234022_a107a4.png,/home/b24014/egbim/egbim/uploads/comment/1774234022_a107a4.png,EGBIM_QA/comment-images/54.png,2026-03-23 11:47:02,31483,7315350285b526beb1db1a14230b21d8f77bef9d114c74525f95719a868b8fb2,READY
|
||||
COMMENT_THUMBNAIL,54,685,qna346_egbim삭제후fonts폴더.png,/uploads/comment/thumb/thumb_1774234022_a107a4.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1774234022_a107a4.png,EGBIM_QA/comment-thumbnails/54.png,2026-03-23 11:47:02,3497,a5ee7cd75c562cbb023718f3eab62d1c91a9f7ff9c241f1a7e8fcaf3860f992a,READY
|
||||
COMMENT_IMAGE,55,706,qna254_명령어하위메뉴끄기_20260401.png,/uploads/comment/1775019629_d69840.png,/home/b24014/egbim/egbim/uploads/comment/1775019629_d69840.png,EGBIM_QA/comment-images/55.png,2026-04-01 14:00:29,349208,b22e87fc7672666dc6fa706eaa5c920ca66fac33528dcd0df0a1190a57c5dca3,READY
|
||||
COMMENT_THUMBNAIL,55,706,qna254_명령어하위메뉴끄기_20260401.png,/uploads/comment/thumb/thumb_1775019629_d69840.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1775019629_d69840.png,EGBIM_QA/comment-thumbnails/55.png,2026-04-01 14:00:29,7254,7a4887b06189f4b436b7df86cf4a98fa1c979df8ac17196638c936ad92409cfa,READY
|
||||
COMMENT_IMAGE,56,712,qna352_우클릭draworder_back_명령프롬프트_20260401.png,/uploads/comment/1775025689_d9eb65.png,/home/b24014/egbim/egbim/uploads/comment/1775025689_d9eb65.png,EGBIM_QA/comment-images/56.png,2026-04-01 15:41:29,4360,0d8382514ac7b1cb7a0d1c817598029dc3ab0f7820e946154b070aeed4e9dd65,READY
|
||||
COMMENT_THUMBNAIL,56,712,qna352_우클릭draworder_back_명령프롬프트_20260401.png,/uploads/comment/thumb/thumb_1775025689_d9eb65.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1775025689_d9eb65.png,EGBIM_QA/comment-thumbnails/56.png,2026-04-01 15:41:29,2040,6991722cac46524c890b933803742516186c8277b78c8b6f9cc2ae96524430f7,READY
|
||||
COMMENT_IMAGE,57,713,qna137_Materials_png로새물질생성_20260401.png,/uploads/comment/1775027305_842e9d.png,/home/b24014/egbim/egbim/uploads/comment/1775027305_842e9d.png,EGBIM_QA/comment-images/57.png,2026-04-01 16:08:25,389163,d1aa6aeb4a4e3a2c9e29fc09f960e28807636e55936c9e9381a93a1ff673dca7,READY
|
||||
COMMENT_THUMBNAIL,57,713,qna137_Materials_png로새물질생성_20260401.png,/uploads/comment/thumb/thumb_1775027305_842e9d.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1775027305_842e9d.png,EGBIM_QA/comment-thumbnails/57.png,2026-04-01 16:08:25,3814,dbba987bfb868e75c4772d3645baed5e747144d6ea553891b3bfea9b9e934022,READY
|
||||
COMMENT_IMAGE,58,714,qna353_acad proxy entity_acad_20260401.png,/uploads/comment/1775032133_0aa564.png,/home/b24014/egbim/egbim/uploads/comment/1775032133_0aa564.png,EGBIM_QA/comment-images/58.png,2026-04-01 17:28:53,641179,eb7f970893a076af695cacb3087291ec797355437fb7db4486ea113b9c1dd6a7,READY
|
||||
COMMENT_THUMBNAIL,58,714,qna353_acad proxy entity_acad_20260401.png,/uploads/comment/thumb/thumb_1775032133_0aa564.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1775032133_0aa564.png,EGBIM_QA/comment-thumbnails/58.png,2026-04-01 17:28:53,3523,7f0668d6b16ba9ab56728fcca5b3db20eca03adb8d617e9e780ae3c1efe164df,READY
|
||||
COMMENT_IMAGE,59,716,qna354_acad cfm 설정.png,/uploads/comment/1775175858_eea711.png,/home/b24014/egbim/egbim/uploads/comment/1775175858_eea711.png,EGBIM_QA/comment-images/59.png,2026-04-03 09:24:18,126606,d5423729122c2be0d3defa28ba0bfb46240c306f36ce9b508c1788f5ea211c96,READY
|
||||
COMMENT_THUMBNAIL,59,716,qna354_acad cfm 설정.png,/uploads/comment/thumb/thumb_1775175858_eea711.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1775175858_eea711.png,EGBIM_QA/comment-thumbnails/59.png,2026-04-03 09:24:18,4800,7eeaa0bb34fc3058503c94fd28ae42a709498168df7ba01d20e2bd9dfead3c63,READY
|
||||
COMMENT_IMAGE,63,727,qna361_도면출력시CTB설정_20260410.png,/uploads/comment/1775801858_cbb601.png,/home/b24014/egbim/egbim/uploads/comment/1775801858_cbb601.png,EGBIM_QA/comment-images/63.png,2026-04-10 15:17:38,43690,dc20499c03026e570a547be961cdd6ca4fcc10f024dfae86d4146480875ed375,READY
|
||||
COMMENT_THUMBNAIL,63,727,qna361_도면출력시CTB설정_20260410.png,/uploads/comment/thumb/thumb_1775801858_cbb601.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1775801858_cbb601.png,EGBIM_QA/comment-thumbnails/63.png,2026-04-10 15:17:38,5524,6cacf10f9409626bb8b4071f1e002315cc7fedea645d8c14ac8f4613630077bd,READY
|
||||
COMMENT_IMAGE,64,733,qna365_폴리선 그릴수없는오류_THICKNESS0설정.png,/uploads/comment/1776147379_b022da.png,/home/b24014/egbim/egbim/uploads/comment/1776147379_b022da.png,EGBIM_QA/comment-images/64.png,2026-04-14 15:16:19,203322,c2862046898c957d7c35c5c92e9e639a9c5d72d478f305582d7be2508ddc954b,READY
|
||||
COMMENT_THUMBNAIL,64,733,qna365_폴리선 그릴수없는오류_THICKNESS0설정.png,/uploads/comment/thumb/thumb_1776147379_b022da.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1776147379_b022da.png,EGBIM_QA/comment-thumbnails/64.png,2026-04-14 15:16:19,6055,c850440965f38e00aac53c9aac13f37eb977caa913195a29a3a9b78127c95c2f,READY
|
||||
COMMENT_IMAGE,65,735,qna256_꾸러미도곽인식(V1.4.0)_20260413.png,/uploads/comment/1776156539_b90d89.png,/home/b24014/egbim/egbim/uploads/comment/1776156539_b90d89.png,EGBIM_QA/comment-images/65.png,2026-04-14 17:48:59,856288,40184ae3d85c736ec70eab8f133f051c2cf5c56eb877385deed533eee5cf6c02,READY
|
||||
COMMENT_THUMBNAIL,65,735,qna256_꾸러미도곽인식(V1.4.0)_20260413.png,/uploads/comment/thumb/thumb_1776156539_b90d89.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1776156539_b90d89.png,EGBIM_QA/comment-thumbnails/65.png,2026-04-14 17:48:59,3826,8cc13c74a14f180b5a1cf9530d9e2b77a6db059d0b552d7d82d81782d1822ae8,READY
|
||||
COMMENT_IMAGE,66,752,qna365_Thickness 초기화 기능추가_20260424.png,/uploads/comment/1776999665_41c7ed.png,/home/b24014/egbim/egbim/uploads/comment/1776999665_41c7ed.png,EGBIM_QA/comment-images/66.png,2026-04-24 12:01:05,5036,12dc32677c41339516f8ab55676536c7be34369b78f14a6bf126f17fd7786edc,READY
|
||||
COMMENT_THUMBNAIL,66,752,qna365_Thickness 초기화 기능추가_20260424.png,/uploads/comment/thumb/thumb_1776999665_41c7ed.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1776999665_41c7ed.png,EGBIM_QA/comment-thumbnails/66.png,2026-04-24 12:01:05,2535,0b28b3c353c54c34b0f791e322fc4719134023fba714ba673112614eaf0e4cc6,READY
|
||||
COMMENT_IMAGE,67,765,qna315_jpg복사오류_20260511.png,/uploads/comment/1778460850_656e59.png,/home/b24014/egbim/egbim/uploads/comment/1778460850_656e59.png,EGBIM_QA/comment-images/67.png,2026-05-11 09:54:10,329326,2fc6dd5f6855b2fbec8d975d3d6e0d84605b6474be1b14fc918a473f8c4b87f1,READY
|
||||
COMMENT_THUMBNAIL,67,765,qna315_jpg복사오류_20260511.png,/uploads/comment/thumb/thumb_1778460850_656e59.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1778460850_656e59.png,EGBIM_QA/comment-thumbnails/67.png,2026-05-11 09:54:10,6172,b17ec530156d5f455c2111eec1eeb65ee67eefbbe7340d7359010282a198934c,READY
|
||||
COMMENT_IMAGE,68,765,qna315_플롯시 투명도 적용됨_20260511.png,/uploads/comment/1778460850_6cbc81.png,/home/b24014/egbim/egbim/uploads/comment/1778460850_6cbc81.png,EGBIM_QA/comment-images/68.png,2026-05-11 09:54:10,842034,7331e1d6c708bfeb720a6fe8a8cd4b0ea509b1d76accd0228f7daaec6b4b59ff,READY
|
||||
COMMENT_THUMBNAIL,68,765,qna315_플롯시 투명도 적용됨_20260511.png,/uploads/comment/thumb/thumb_1778460850_6cbc81.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1778460850_6cbc81.png,EGBIM_QA/comment-thumbnails/68.png,2026-05-11 09:54:10,8589,1c521ab10b32ff8fe444b37e281799b11d132b6f68404264feff369aeb910413,READY
|
||||
COMMENT_IMAGE,69,787,qna401_사용자설정저장하기_20260529.png,/uploads/comment/1780023483_6b8cfe.png,/home/b24014/egbim/egbim/uploads/comment/1780023483_6b8cfe.png,EGBIM_QA/comment-images/69.png,2026-05-29 11:58:03,109112,17724489d49d6cee8d08b6e8073de046a633cb6c2bc11b01f83c82f42d2ef8f3,READY
|
||||
COMMENT_THUMBNAIL,69,787,qna401_사용자설정저장하기_20260529.png,/uploads/comment/thumb/thumb_1780023483_6b8cfe.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1780023483_6b8cfe.png,EGBIM_QA/comment-thumbnails/69.png,2026-05-29 11:58:03,3706,322392ca8772615f4c29da4a33e3f17e60df7fad13ce35d87b81035f09e49dab,READY
|
||||
COMMENT_IMAGE,70,788,qna402_내부블록으로bind_20260529.png,/uploads/comment/1780025072_ca21e8.png,/home/b24014/egbim/egbim/uploads/comment/1780025072_ca21e8.png,EGBIM_QA/comment-images/70.png,2026-05-29 12:24:32,402775,65027c99f4a5a5556d2d0c9e8c553c20e54c004ee54729c2d6ba23ba29f213fd,READY
|
||||
COMMENT_THUMBNAIL,70,788,qna402_내부블록으로bind_20260529.png,/uploads/comment/thumb/thumb_1780025072_ca21e8.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1780025072_ca21e8.png,EGBIM_QA/comment-thumbnails/70.png,2026-05-29 12:24:32,4806,4f13be92385542d1a11e0a8723ec6db0a7e47a1f9b5b072b8c4eaaad4429d251,READY
|
||||
COMMENT_IMAGE,71,852,qna467_문자회전(TER)설정_20260722.png,/uploads/comment/1784683079_40d711.png,/home/b24014/egbim/egbim/uploads/comment/1784683079_40d711.png,EGBIM_QA/comment-images/71.png,2026-07-22 10:17:59,21323,ed8e9a6e3d025c2570d9d7e2da669b6e0029d1cb09ec873274e437aee072a17c,READY
|
||||
COMMENT_THUMBNAIL,71,852,qna467_문자회전(TER)설정_20260722.png,/uploads/comment/thumb/thumb_1784683079_40d711.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1784683079_40d711.png,EGBIM_QA/comment-thumbnails/71.png,2026-07-22 10:17:59,5384,37e64e1fc2eace0402a59f7696fbfe19bfc06c5b44fec9cf9ff3e9e683165eae,READY
|
||||
COMMENT_IMAGE,72,855,qna460_dwg파일 실행 안되는 오류_20260722.png,/uploads/comment/1784684590_51839e.png,/home/b24014/egbim/egbim/uploads/comment/1784684590_51839e.png,EGBIM_QA/comment-images/72.png,2026-07-22 10:43:10,440367,3afe341687d09d21e4ccef6d6ebca10e86aee9950a9048681613f5349eca5384,READY
|
||||
COMMENT_THUMBNAIL,72,855,qna460_dwg파일 실행 안되는 오류_20260722.png,/uploads/comment/thumb/thumb_1784684590_51839e.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1784684590_51839e.png,EGBIM_QA/comment-thumbnails/72.png,2026-07-22 10:43:10,9632,e237f9d701995ed21bbe32b3bf563e1d6cece55a811d4dce2f20cea3847f3d14,READY
|
||||
COMMENT_IMAGE,73,856,qna465_JMP명령테스트.jpg,/uploads/comment/1784685450_1a5edb.jpg,/home/b24014/egbim/egbim/uploads/comment/1784685450_1a5edb.jpg,EGBIM_QA/comment-images/73.jpg,2026-07-22 10:57:30,256526,f2903506f6721a5712711ec52145fe627103365f54ee240aa64960db7c5b6887,READY
|
||||
COMMENT_THUMBNAIL,73,856,qna465_JMP명령테스트.jpg,/uploads/comment/thumb/thumb_1784685450_1a5edb.jpg,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1784685450_1a5edb.jpg,EGBIM_QA/comment-thumbnails/73.jpg,2026-07-22 10:57:30,3261,05f260c7d542e2c4169eb4e644a2d5c5f6f9a3af9bf093e9c4c4d23c06ef0288,READY
|
||||
COMMENT_IMAGE,74,863,qna462_acad_purge창_20260722.png,/uploads/comment/1784710527_40aab9.png,/home/b24014/egbim/egbim/uploads/comment/1784710527_40aab9.png,EGBIM_QA/comment-images/74.png,2026-07-22 17:55:27,427241,7d2bdc181bac383a6120c3bcb2198f67417993cbdd30d9ccb2f20ea555883593,READY
|
||||
COMMENT_THUMBNAIL,74,863,qna462_acad_purge창_20260722.png,/uploads/comment/thumb/thumb_1784710527_40aab9.png,/home/b24014/egbim/egbim/uploads/comment/thumb/thumb_1784710527_40aab9.png,EGBIM_QA/comment-thumbnails/74.png,2026-07-22 17:55:27,6336,cce1167960fc204073db2fc7bf6a382207d560a24c4f3b62982e6d3d8a212c60,READY
|
||||
|
File diff suppressed because one or more lines are too long
@@ -0,0 +1,361 @@
|
||||
import { randomUUID } from 'node:crypto';
|
||||
import { existsSync } from 'node:fs';
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import { join, resolve } from 'node:path';
|
||||
import { config as loadEnv } from 'dotenv';
|
||||
import {
|
||||
DeleteObjectCommand,
|
||||
GetObjectCommand,
|
||||
PutObjectCommand,
|
||||
S3Client,
|
||||
} from '@aws-sdk/client-s3';
|
||||
import mysql, { type Connection, type RowDataPacket } from 'mysql2/promise';
|
||||
|
||||
loadEnv({ path: resolve(__dirname, '../apps/secretary-api/.env') });
|
||||
|
||||
interface CommentRow extends RowDataPacket {
|
||||
source_comment_id: number;
|
||||
feedback_id: string;
|
||||
channel_id: string;
|
||||
author_id: string;
|
||||
author_tenant_id: string;
|
||||
author_name: string | null;
|
||||
content: string;
|
||||
is_internal: number;
|
||||
created_at: Date;
|
||||
updated_at: Date;
|
||||
}
|
||||
|
||||
interface AttachmentRow extends RowDataPacket {
|
||||
source_attachment_id: number;
|
||||
source_comment_id: number;
|
||||
channel_id: string;
|
||||
storage_provider: string;
|
||||
storage_bucket: string | null;
|
||||
storage_key: string;
|
||||
original_file_name: string;
|
||||
mime_type: string | null;
|
||||
file_size: number | null;
|
||||
}
|
||||
|
||||
interface ChannelRow extends RowDataPacket {
|
||||
id: number;
|
||||
image_config: unknown;
|
||||
}
|
||||
|
||||
interface ImageConfig {
|
||||
accessKeyId: string;
|
||||
secretAccessKey: string;
|
||||
endpoint: string;
|
||||
region: string;
|
||||
bucket: string;
|
||||
}
|
||||
|
||||
interface StoredObject {
|
||||
body: Buffer;
|
||||
contentType: string;
|
||||
}
|
||||
|
||||
const isDryRun = !process.argv.includes('--apply');
|
||||
const sourceLocalRoot = '/home/b24014/baron_qa/uploads';
|
||||
|
||||
const parseImageConfig = (raw: unknown): ImageConfig => {
|
||||
const value = typeof raw === 'string' ? JSON.parse(raw) : raw;
|
||||
if (!value || typeof value !== 'object') {
|
||||
throw new Error('ABC channel image_config is missing');
|
||||
}
|
||||
const config = value as Record<string, unknown>;
|
||||
const required = ['accessKeyId', 'secretAccessKey', 'endpoint', 'region', 'bucket'];
|
||||
if (required.some((key) => typeof config[key] !== 'string' || !config[key])) {
|
||||
throw new Error('ABC channel image_config is incomplete');
|
||||
}
|
||||
return config as unknown as ImageConfig;
|
||||
};
|
||||
|
||||
const createClient = (config: ImageConfig) =>
|
||||
new S3Client({
|
||||
credentials: {
|
||||
accessKeyId: config.accessKeyId,
|
||||
|
||||
secretAccessKey: config.secretAccessKey,
|
||||
},
|
||||
endpoint: config.endpoint,
|
||||
region: config.region,
|
||||
});
|
||||
|
||||
const connectionOptions = (rawUrl: string) => {
|
||||
const url = new URL(rawUrl.replace('mysql+pymysql://', 'mysql://'));
|
||||
return {
|
||||
host: url.hostname,
|
||||
port: Number(url.port || 3306),
|
||||
user: decodeURIComponent(url.username),
|
||||
password: decodeURIComponent(url.password),
|
||||
database: url.pathname.slice(1),
|
||||
};
|
||||
};
|
||||
|
||||
const getSourceR2Client = () => {
|
||||
const endpoint = process.env.R2_ENDPOINT;
|
||||
const accessKeyId = process.env.R2_ACCESS_KEY_ID;
|
||||
const secretAccessKey = process.env.R2_SECRET_ACCESS_KEY;
|
||||
const region = process.env.R2_REGION ?? 'auto';
|
||||
if (!endpoint || !accessKeyId || !secretAccessKey) {
|
||||
throw new Error('Secretary R2 environment variables are incomplete');
|
||||
}
|
||||
return new S3Client({
|
||||
credentials: { accessKeyId, secretAccessKey },
|
||||
endpoint,
|
||||
region,
|
||||
});
|
||||
};
|
||||
|
||||
const readSourceObject = async (attachment: AttachmentRow): Promise<StoredObject> => {
|
||||
const provider = attachment.storage_provider.toUpperCase();
|
||||
if (provider === 'LOCAL') {
|
||||
const root = resolve(attachment.storage_bucket ?? sourceLocalRoot);
|
||||
const path = resolve(join(root, attachment.storage_key));
|
||||
if (!path.startsWith(root + '/')) {
|
||||
throw new Error(`Unsafe local attachment path: ${attachment.storage_key}`);
|
||||
}
|
||||
if (!existsSync(path)) {
|
||||
throw new Error(`Local attachment not found: ${path}`);
|
||||
}
|
||||
return {
|
||||
body: await readFile(path),
|
||||
contentType: attachment.mime_type ?? 'application/octet-stream',
|
||||
};
|
||||
}
|
||||
|
||||
if (provider !== 'R2') {
|
||||
throw new Error(`Unsupported Secretary storage provider: ${attachment.storage_provider}`);
|
||||
}
|
||||
const bucket = attachment.storage_bucket ?? process.env.R2_BUCKET;
|
||||
if (!bucket) {
|
||||
throw new Error(`Secretary R2 bucket is missing for attachment ${attachment.source_attachment_id}`);
|
||||
}
|
||||
const response = await getSourceR2Client().send(
|
||||
new GetObjectCommand({ Bucket: bucket, Key: attachment.storage_key }),
|
||||
);
|
||||
if (!response.Body || typeof response.Body.transformToByteArray !== 'function') {
|
||||
throw new Error(`Secretary R2 object has no readable body: ${attachment.storage_key}`);
|
||||
}
|
||||
return {
|
||||
body: Buffer.from(await response.Body.transformToByteArray()),
|
||||
contentType: attachment.mime_type ?? 'application/octet-stream',
|
||||
};
|
||||
};
|
||||
|
||||
const findExistingComment = async (db: Connection, comment: CommentRow) => {
|
||||
const [rows] = await db.query<RowDataPacket[]>(
|
||||
`SELECT id FROM feedback_comments
|
||||
WHERE feedback_id = ? AND author_id = ? AND author_tenant_id = ?
|
||||
AND content = ? AND is_internal = ? AND created_at = ?
|
||||
AND deleted_at IS NULL LIMIT 1`,
|
||||
[
|
||||
Number(comment.feedback_id),
|
||||
comment.author_id,
|
||||
comment.author_tenant_id,
|
||||
comment.content,
|
||||
comment.is_internal ? 1 : 0,
|
||||
comment.created_at,
|
||||
],
|
||||
);
|
||||
return rows[0] ? Number(rows[0].id) : null;
|
||||
};
|
||||
|
||||
const insertComment = async (db: Connection, comment: CommentRow) => {
|
||||
const existingId = await findExistingComment(db, comment);
|
||||
if (existingId) return { id: existingId, created: false };
|
||||
|
||||
const [result] = await db.query<mysql.ResultSetHeader>(
|
||||
`INSERT INTO feedback_comments
|
||||
(feedback_id, author_id, author_tenant_id, author_name, content,
|
||||
is_internal, comment_type, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
[
|
||||
Number(comment.feedback_id),
|
||||
comment.author_id,
|
||||
comment.author_tenant_id,
|
||||
comment.author_name ?? comment.author_id,
|
||||
comment.content,
|
||||
comment.is_internal ? 1 : 0,
|
||||
comment.is_internal ? 'INTERNAL_MEMO' : 'COMMENT',
|
||||
comment.created_at,
|
||||
comment.updated_at,
|
||||
],
|
||||
);
|
||||
return { id: result.insertId, created: true };
|
||||
};
|
||||
|
||||
const findExistingAttachment = async (
|
||||
db: Connection,
|
||||
commentId: number,
|
||||
attachment: AttachmentRow,
|
||||
) => {
|
||||
const [rows] = await db.query<RowDataPacket[]>(
|
||||
`SELECT id FROM feedback_comment_attachments
|
||||
WHERE comment_id = ? AND original_file_name = ? AND mime_type = ?
|
||||
AND file_size = ? AND deleted_at IS NULL LIMIT 1`,
|
||||
[
|
||||
commentId,
|
||||
attachment.original_file_name,
|
||||
attachment.mime_type ?? 'application/octet-stream',
|
||||
attachment.file_size ?? 0,
|
||||
],
|
||||
);
|
||||
return rows[0] ? Number(rows[0].id) : null;
|
||||
};
|
||||
|
||||
const insertAttachment = async (
|
||||
db: Connection,
|
||||
config: ImageConfig,
|
||||
attachment: AttachmentRow,
|
||||
commentId: number,
|
||||
) => {
|
||||
const existingId = await findExistingAttachment(db, commentId, attachment);
|
||||
if (existingId) return { id: existingId, created: false };
|
||||
|
||||
const object = await readSourceObject(attachment);
|
||||
const safeName = attachment.original_file_name.replace(/[^a-zA-Z0-9._-]/g, '_');
|
||||
const storageKey =
|
||||
'migrated/secretary-comments/feedback-' +
|
||||
attachment.channel_id +
|
||||
'/comment-' +
|
||||
String(commentId) +
|
||||
'/' +
|
||||
randomUUID() +
|
||||
'-' +
|
||||
safeName;
|
||||
const client = createClient(config);
|
||||
|
||||
await client.send(
|
||||
new PutObjectCommand({
|
||||
Bucket: config.bucket,
|
||||
Key: storageKey,
|
||||
Body: object.body,
|
||||
ContentType: object.contentType,
|
||||
}),
|
||||
);
|
||||
|
||||
try {
|
||||
const [result] = await db.query<mysql.ResultSetHeader>(
|
||||
`INSERT INTO feedback_comment_attachments
|
||||
(comment_id, original_file_name, storage_key, storage_bucket,
|
||||
mime_type, file_size, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP(6), CURRENT_TIMESTAMP(6))`,
|
||||
[
|
||||
commentId,
|
||||
attachment.original_file_name,
|
||||
storageKey,
|
||||
config.bucket,
|
||||
object.contentType,
|
||||
object.body.byteLength,
|
||||
],
|
||||
);
|
||||
return { id: result.insertId, created: true };
|
||||
} catch (error) {
|
||||
await client
|
||||
.send(new DeleteObjectCommand({ Bucket: config.bucket, Key: storageKey }))
|
||||
.catch(() => undefined);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
const main = async () => {
|
||||
const secretaryUrl = process.env.DATABASE_URL;
|
||||
if (!secretaryUrl) throw new Error('Secretary DATABASE_URL is missing');
|
||||
const secretary = await mysql.createConnection(connectionOptions(secretaryUrl));
|
||||
const abc = await mysql.createConnection(
|
||||
connectionOptions('mysql://userfeedback:userfeedback@127.0.0.1:13306/userfeedback'),
|
||||
);
|
||||
|
||||
try {
|
||||
const [comments] = await secretary.query<CommentRow[]>(
|
||||
`SELECT c.id AS source_comment_id, m.abc_feedback_id AS feedback_id,
|
||||
m.abc_channel_id AS channel_id, c.author_id, c.author_tenant_id,
|
||||
c.author_name, c.content, c.is_internal, c.created_at, c.updated_at
|
||||
FROM ticket_comments c
|
||||
JOIN abc_feedback_mappings m ON m.ticket_id = c.ticket_id
|
||||
WHERE c.deleted_at IS NULL AND m.abc_feedback_id IS NOT NULL
|
||||
ORDER BY c.id`,
|
||||
);
|
||||
const [attachments] = await secretary.query<AttachmentRow[]>(
|
||||
`SELECT a.id AS source_attachment_id, a.comment_id AS source_comment_id,
|
||||
m.abc_channel_id AS channel_id, a.storage_provider,
|
||||
a.storage_bucket, a.storage_key, a.original_file_name,
|
||||
a.mime_type, a.file_size
|
||||
FROM attachments a
|
||||
JOIN ticket_comments c ON c.id = a.comment_id AND c.deleted_at IS NULL
|
||||
JOIN abc_feedback_mappings m ON m.ticket_id = c.ticket_id
|
||||
WHERE a.deleted_at IS NULL AND a.comment_id IS NOT NULL
|
||||
AND m.abc_feedback_id IS NOT NULL
|
||||
ORDER BY a.id`,
|
||||
);
|
||||
|
||||
const channelIds = [...new Set(attachments.map((item) => Number(item.channel_id)))];
|
||||
const configs = new Map<number, ImageConfig>();
|
||||
if (channelIds.length > 0) {
|
||||
const [channels] = await abc.query<ChannelRow[]>(
|
||||
'SELECT id, image_config FROM channels WHERE id IN (?)',
|
||||
[channelIds],
|
||||
);
|
||||
for (const channel of channels) {
|
||||
configs.set(channel.id, parseImageConfig(channel.image_config));
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`${isDryRun ? 'DRY-RUN' : 'APPLY'} comments: ${comments.length}`);
|
||||
console.log(`${isDryRun ? 'DRY-RUN' : 'APPLY'} comment attachments: ${attachments.length}`);
|
||||
|
||||
const targetCommentIds = new Map<number, number>();
|
||||
let createdComments = 0;
|
||||
let skippedComments = 0;
|
||||
for (const comment of comments) {
|
||||
const existingId = await findExistingComment(abc, comment);
|
||||
if (isDryRun) {
|
||||
if (existingId) skippedComments += 1;
|
||||
else createdComments += 1;
|
||||
if (existingId) targetCommentIds.set(comment.source_comment_id, existingId);
|
||||
continue;
|
||||
}
|
||||
const result = await insertComment(abc, comment);
|
||||
targetCommentIds.set(comment.source_comment_id, result.id);
|
||||
result.created ? (createdComments += 1) : (skippedComments += 1);
|
||||
}
|
||||
|
||||
let createdAttachments = 0;
|
||||
let skippedAttachments = 0;
|
||||
let pendingAttachments = 0;
|
||||
for (const attachment of attachments) {
|
||||
const commentId = targetCommentIds.get(attachment.source_comment_id);
|
||||
if (!commentId) {
|
||||
pendingAttachments += 1;
|
||||
continue;
|
||||
}
|
||||
const config = configs.get(Number(attachment.channel_id));
|
||||
if (!config) throw new Error(`ABC channel ${attachment.channel_id} R2 config is missing`);
|
||||
const existingId = await findExistingAttachment(abc, commentId, attachment);
|
||||
if (isDryRun) {
|
||||
existingId ? (skippedAttachments += 1) : (createdAttachments += 1);
|
||||
continue;
|
||||
}
|
||||
const result = await insertAttachment(abc, config, attachment, commentId);
|
||||
result.created ? (createdAttachments += 1) : (skippedAttachments += 1);
|
||||
}
|
||||
|
||||
console.log('Comments created:', createdComments);
|
||||
console.log('Comments skipped:', skippedComments);
|
||||
console.log('Attachments created:', createdAttachments);
|
||||
console.log('Attachments skipped:', skippedAttachments);
|
||||
console.log('Attachments pending:', pendingAttachments);
|
||||
if (isDryRun) console.log('No database or R2 changes were made. Use --apply to execute.');
|
||||
} finally {
|
||||
await secretary.end();
|
||||
await abc.end();
|
||||
}
|
||||
};
|
||||
|
||||
main().catch((error) => {
|
||||
console.error(error instanceof Error ? error.message : error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
@@ -0,0 +1,659 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Convert the EGBIM QA dump into staging migration artifacts.
|
||||
|
||||
This tool deliberately does not execute SQL against a database. It reads the
|
||||
legacy dump, optionally copies referenced files into the staging uploads
|
||||
volume, and writes:
|
||||
|
||||
* userfeedback_feedbacks.sql: idempotent ABC feedback inserts
|
||||
* support_attachments.sql: attachment inserts resolved through the planned
|
||||
EGBIM_QA migration mappings in baron_support
|
||||
* uploads_manifest.csv: source/target file and checksum audit data
|
||||
|
||||
The generated support SQL must run after support_tickets and ticket_comments
|
||||
have been migrated. Comment migration must store abc_comment_id as
|
||||
EGBIM_QA:<legacy_comment_id> so comment image rows can resolve their target.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import csv
|
||||
import hashlib
|
||||
import json
|
||||
import mimetypes
|
||||
import re
|
||||
import shutil
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
|
||||
TABLES = {
|
||||
"qa_posts": (
|
||||
"post_id",
|
||||
"login_id",
|
||||
"phone",
|
||||
"user_id",
|
||||
"user_name",
|
||||
"category",
|
||||
"is_internal",
|
||||
"company",
|
||||
"family_company",
|
||||
"department",
|
||||
"position",
|
||||
"title",
|
||||
"content",
|
||||
"attachment",
|
||||
"status",
|
||||
"is_private",
|
||||
"complete_form",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"is_secret",
|
||||
"is_read_admin",
|
||||
),
|
||||
"qa_attachments": (
|
||||
"id",
|
||||
"post_id",
|
||||
"ori_name",
|
||||
"save_path",
|
||||
"file_size",
|
||||
"uploaded_at",
|
||||
),
|
||||
"qa_comment_images": (
|
||||
"id",
|
||||
"comment_id",
|
||||
"file_name",
|
||||
"file_path",
|
||||
"thumb_path",
|
||||
"file_size",
|
||||
"uploaded_at",
|
||||
),
|
||||
"qa_comments": (
|
||||
"comment_id",
|
||||
"post_id",
|
||||
"commenter",
|
||||
"content",
|
||||
"created_at",
|
||||
"user_name",
|
||||
"updated_at",
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@dataclass
|
||||
class FileRecord:
|
||||
entity_type: str
|
||||
source_id: str
|
||||
parent_id: str
|
||||
original_name: str
|
||||
source_value: str
|
||||
source_path: Path
|
||||
storage_key: str
|
||||
uploaded_at: str | None
|
||||
file_size: int | None
|
||||
checksum: str | None = None
|
||||
status: str = "MISSING"
|
||||
|
||||
|
||||
def find_insert_block(text: str, table: str) -> tuple[list[str], str]:
|
||||
marker = f"INSERT INTO `{table}`"
|
||||
start = text.find(marker)
|
||||
if start < 0:
|
||||
return [], ""
|
||||
columns_start = text.find("(", start)
|
||||
columns_end = text.find(")", columns_start)
|
||||
values_start = text.find("VALUES", columns_end)
|
||||
if columns_start < 0 or columns_end < 0 or values_start < 0:
|
||||
return [], ""
|
||||
columns = [part.strip().strip("`") for part in text[columns_start + 1 : columns_end].split(",")]
|
||||
body_start = values_start + len("VALUES")
|
||||
in_quote = False
|
||||
escaped = False
|
||||
quote = ""
|
||||
for index in range(body_start, len(text)):
|
||||
char = text[index]
|
||||
if in_quote:
|
||||
if escaped:
|
||||
escaped = False
|
||||
elif char == "\\":
|
||||
escaped = True
|
||||
elif char == quote:
|
||||
if index + 1 < len(text) and text[index + 1] == quote:
|
||||
continue
|
||||
in_quote = False
|
||||
elif char in "'\"":
|
||||
in_quote = True
|
||||
quote = char
|
||||
elif char == ";":
|
||||
return columns, text[body_start:index]
|
||||
raise ValueError(f"INSERT block for {table} has no terminating semicolon")
|
||||
|
||||
|
||||
def parse_rows(body: str) -> list[list[Any]]:
|
||||
rows: list[list[Any]] = []
|
||||
index = 0
|
||||
length = len(body)
|
||||
while index < length:
|
||||
while index < length and body[index] in " \t\r\n,":
|
||||
index += 1
|
||||
if index >= length:
|
||||
break
|
||||
if body[index] != "(":
|
||||
raise ValueError(f"Expected row at offset {index}")
|
||||
index += 1
|
||||
row: list[Any] = []
|
||||
while index < length:
|
||||
while index < length and body[index] in " \t\r\n":
|
||||
index += 1
|
||||
if index >= length:
|
||||
raise ValueError("Unterminated row")
|
||||
if body[index] in "'\"":
|
||||
quote = body[index]
|
||||
index += 1
|
||||
value: list[str] = []
|
||||
while index < length:
|
||||
char = body[index]
|
||||
if char == "\\" and index + 1 < length:
|
||||
escapes = {"n": "\n", "r": "\r", "t": "\t", "0": "\0"}
|
||||
value.append(escapes.get(body[index + 1], body[index + 1]))
|
||||
index += 2
|
||||
elif char == quote:
|
||||
if index + 1 < length and body[index + 1] == quote:
|
||||
value.append(quote)
|
||||
index += 2
|
||||
else:
|
||||
index += 1
|
||||
break
|
||||
else:
|
||||
value.append(char)
|
||||
index += 1
|
||||
row.append("".join(value))
|
||||
else:
|
||||
start = index
|
||||
while index < length and body[index] not in ",)\r\n":
|
||||
index += 1
|
||||
token = body[start:index].strip()
|
||||
if token.upper() == "NULL":
|
||||
row.append(None)
|
||||
else:
|
||||
row.append(token)
|
||||
while index < length and body[index] in " \t\r\n":
|
||||
index += 1
|
||||
if index >= length:
|
||||
raise ValueError("Unterminated row")
|
||||
if body[index] == ",":
|
||||
index += 1
|
||||
continue
|
||||
if body[index] == ")":
|
||||
index += 1
|
||||
rows.append(row)
|
||||
break
|
||||
raise ValueError(f"Expected comma or closing parenthesis at offset {index}")
|
||||
return rows
|
||||
|
||||
|
||||
def load_table(text: str, table: str) -> list[dict[str, Any]]:
|
||||
columns, body = find_insert_block(text, table)
|
||||
if not body:
|
||||
return []
|
||||
rows = parse_rows(body)
|
||||
expected = TABLES[table]
|
||||
if tuple(columns) != expected:
|
||||
raise ValueError(f"Unexpected columns for {table}: {columns}")
|
||||
return [dict(zip(columns, row, strict=True)) for row in rows]
|
||||
|
||||
|
||||
def sql_string(value: str | None) -> str:
|
||||
if value is None:
|
||||
return "NULL"
|
||||
return "'" + value.replace("\\", "\\\\").replace("'", "''") + "'"
|
||||
|
||||
|
||||
def sql_json(value: dict[str, Any]) -> str:
|
||||
encoded = json.dumps(value, ensure_ascii=False, separators=(",", ":"))
|
||||
return "CAST(" + sql_string(encoded) + " AS JSON)"
|
||||
|
||||
|
||||
def safe_extension(name: str) -> str:
|
||||
extension = Path(name).suffix.lower()
|
||||
return extension if re.fullmatch(r"\.[a-z0-9]{1,10}", extension) else ".bin"
|
||||
|
||||
|
||||
def source_relative(path_value: str) -> Path:
|
||||
normalized = path_value.replace("\\", "/")
|
||||
normalized = re.sub(r"^/egbim/uploads/", "", normalized)
|
||||
normalized = re.sub(r"^/uploads/", "", normalized)
|
||||
return Path(normalized.lstrip("/"))
|
||||
|
||||
|
||||
def checksum(path: Path) -> str:
|
||||
digest = hashlib.sha256()
|
||||
with path.open("rb") as stream:
|
||||
for chunk in iter(lambda: stream.read(1024 * 1024), b""):
|
||||
digest.update(chunk)
|
||||
return digest.hexdigest()
|
||||
|
||||
|
||||
def build_file_records(
|
||||
attachments: list[dict[str, Any]],
|
||||
comment_images: list[dict[str, Any]],
|
||||
source_root: Path,
|
||||
target_root: Path,
|
||||
copy_files: bool,
|
||||
) -> list[FileRecord]:
|
||||
records: list[FileRecord] = []
|
||||
for row in attachments:
|
||||
source_rel = source_relative(str(row["save_path"]))
|
||||
source_path = source_root / source_rel
|
||||
target_key = f"EGBIM_QA/attachments/{row['id']}{safe_extension(str(row['ori_name']))}"
|
||||
record = FileRecord(
|
||||
entity_type="POST_ATTACHMENT",
|
||||
source_id=str(row["id"]),
|
||||
parent_id=str(row["post_id"]),
|
||||
original_name=str(row["ori_name"]),
|
||||
source_value=str(row["save_path"]),
|
||||
source_path=source_path,
|
||||
storage_key=target_key,
|
||||
uploaded_at=row["uploaded_at"],
|
||||
file_size=int(row["file_size"]) if row["file_size"] else None,
|
||||
)
|
||||
records.append(record)
|
||||
|
||||
for row in comment_images:
|
||||
source_rel = source_relative(str(row["file_path"]))
|
||||
source_path = source_root / source_rel
|
||||
target_key = f"EGBIM_QA/comment-images/{row['id']}{safe_extension(str(row['file_name']))}"
|
||||
record = FileRecord(
|
||||
entity_type="COMMENT_IMAGE",
|
||||
source_id=str(row["id"]),
|
||||
parent_id=str(row["comment_id"]),
|
||||
original_name=str(row["file_name"]),
|
||||
source_value=str(row["file_path"]),
|
||||
source_path=source_path,
|
||||
storage_key=target_key,
|
||||
uploaded_at=row["uploaded_at"],
|
||||
file_size=int(row["file_size"]) if row["file_size"] else None,
|
||||
)
|
||||
records.append(record)
|
||||
|
||||
thumb_value = row.get("thumb_path")
|
||||
if thumb_value:
|
||||
thumb_source = source_root / source_relative(str(thumb_value))
|
||||
thumb_key = f"EGBIM_QA/comment-thumbnails/{row['id']}{safe_extension(str(row['file_name']))}"
|
||||
records.append(
|
||||
FileRecord(
|
||||
entity_type="COMMENT_THUMBNAIL",
|
||||
source_id=str(row["id"]),
|
||||
parent_id=str(row["comment_id"]),
|
||||
original_name=str(row["file_name"]),
|
||||
source_value=str(thumb_value),
|
||||
source_path=thumb_source,
|
||||
storage_key=thumb_key,
|
||||
uploaded_at=row["uploaded_at"],
|
||||
file_size=None,
|
||||
)
|
||||
)
|
||||
|
||||
for record in records:
|
||||
if not record.source_path.is_file():
|
||||
continue
|
||||
record.checksum = checksum(record.source_path)
|
||||
record.file_size = record.source_path.stat().st_size
|
||||
record.status = "READY"
|
||||
if copy_files:
|
||||
destination = target_root / record.storage_key
|
||||
destination.parent.mkdir(parents=True, exist_ok=True)
|
||||
if destination.exists() and checksum(destination) != record.checksum:
|
||||
raise RuntimeError(f"Target exists with different checksum: {destination}")
|
||||
if not destination.exists():
|
||||
shutil.copy2(record.source_path, destination)
|
||||
return records
|
||||
|
||||
|
||||
def write_manifest(records: list[FileRecord], output: Path) -> None:
|
||||
with output.open("w", newline="", encoding="utf-8") as stream:
|
||||
writer = csv.writer(stream)
|
||||
writer.writerow(
|
||||
[
|
||||
"entity_type",
|
||||
"source_id",
|
||||
"parent_id",
|
||||
"original_name",
|
||||
"source_value",
|
||||
"source_path",
|
||||
"storage_key",
|
||||
"uploaded_at",
|
||||
"file_size",
|
||||
"checksum_sha256",
|
||||
"status",
|
||||
]
|
||||
)
|
||||
for record in records:
|
||||
writer.writerow(
|
||||
[
|
||||
record.entity_type,
|
||||
record.source_id,
|
||||
record.parent_id,
|
||||
record.original_name,
|
||||
record.source_value,
|
||||
record.source_path,
|
||||
record.storage_key,
|
||||
record.uploaded_at or "",
|
||||
record.file_size or "",
|
||||
record.checksum or "",
|
||||
record.status,
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def write_feedback_sql(posts: list[dict[str, Any]], output: Path, channel_id: int) -> None:
|
||||
lines = [
|
||||
"-- Generated from EGBIM qa_posts. Run against ABC userfeedback only.",
|
||||
"-- This file inserts feedback metadata. Comments and local attachments belong to baron_support.",
|
||||
"SET NAMES utf8mb4;",
|
||||
"USE `userfeedback`;",
|
||||
"START TRANSACTION;",
|
||||
]
|
||||
category_map = {"error": "ERROR_QNA", "improvement": "IMPROVEMENT_QNA", "general": "GENERAL_QNA", "notice": "GENERAL_QNA"}
|
||||
for row in posts:
|
||||
source_id = str(row["post_id"])
|
||||
category = str(row.get("category") or "general")
|
||||
data = {
|
||||
"title": row.get("title") or f"EGBIM 문의 #{source_id}",
|
||||
"contents": row.get("content") or "",
|
||||
"category": category_map.get(category, "GENERAL_QNA"),
|
||||
"source_system": "EGBIM_QA",
|
||||
"source_post_id": source_id,
|
||||
"requester": {
|
||||
"login_id": row.get("login_id"),
|
||||
"legacy_user_id": row.get("user_id"),
|
||||
"name": row.get("user_name"),
|
||||
"phone": row.get("phone"),
|
||||
"company": row.get("company"),
|
||||
"department": row.get("department"),
|
||||
},
|
||||
}
|
||||
source_is_secret = bool(int(row.get("is_secret") or 0))
|
||||
source_is_private = bool(int(row.get("is_private") or 0))
|
||||
additional = {
|
||||
"migration_key": f"EGBIM_QA:POST:{source_id}",
|
||||
"source_status": row.get("status"),
|
||||
"is_internal": bool(int(row.get("is_internal") or 0)),
|
||||
"is_secret": source_is_secret or source_is_private,
|
||||
"source_is_secret": source_is_secret,
|
||||
"source_is_private": source_is_private,
|
||||
}
|
||||
# The staging ABC schema stores feedback JSON in `data` and does not
|
||||
# have the newer `additional_data` column. Keep migration metadata in
|
||||
# the same JSON document so the import remains idempotent.
|
||||
data.update(additional)
|
||||
lines.append(
|
||||
"INSERT INTO `feedbacks` (`created_at`,`updated_at`,`data`,`channel_id`) "
|
||||
f"SELECT {sql_string(row.get('created_at'))},{sql_string(row.get('updated_at') or row.get('created_at'))},"
|
||||
f"{sql_json(data)},{channel_id} FROM DUAL "
|
||||
"WHERE NOT EXISTS (SELECT 1 FROM `feedbacks` WHERE `channel_id` = "
|
||||
f"{channel_id} AND JSON_UNQUOTE(JSON_EXTRACT(`data`,'$.migration_key')) = {sql_string(additional['migration_key'])});"
|
||||
)
|
||||
lines.extend(["COMMIT;", ""])
|
||||
output.write_text("\n".join(lines), encoding="utf-8")
|
||||
|
||||
|
||||
def write_support_secret_sql(posts: list[dict[str, Any]], output: Path) -> None:
|
||||
lines = [
|
||||
"-- Generated for baron_support.support_tickets.",
|
||||
"-- Applies EGBIM qa_posts.is_secret OR qa_posts.is_private after ticket mappings exist.",
|
||||
"SET NAMES utf8mb4;",
|
||||
"USE `baron_support`;",
|
||||
"START TRANSACTION;",
|
||||
]
|
||||
for row in posts:
|
||||
is_secret = bool(int(row.get("is_secret") or 0))
|
||||
is_private = bool(int(row.get("is_private") or 0))
|
||||
if not (is_secret or is_private):
|
||||
continue
|
||||
source_id = str(row["post_id"])
|
||||
lines.append(
|
||||
"UPDATE support_tickets st JOIN migration_mappings mm ON mm.ticket_id=st.id "
|
||||
"SET st.is_secret=1 WHERE mm.source_system='EGBIM_QA' "
|
||||
"AND mm.source_entity_type='POST' "
|
||||
f"AND mm.source_entity_id={sql_string(source_id)};"
|
||||
)
|
||||
lines.extend(["COMMIT;", ""])
|
||||
output.write_text("\n".join(lines), encoding="utf-8")
|
||||
|
||||
|
||||
|
||||
def _support_category(value: Any) -> str:
|
||||
category = str(value or "general").strip().lower()
|
||||
return {
|
||||
"error": "ERROR_QNA",
|
||||
"improvement": "IMPROVEMENT_QNA",
|
||||
"general": "GENERAL_QNA",
|
||||
"notice": "GENERAL_QNA",
|
||||
}.get(category, "GENERAL_QNA")
|
||||
|
||||
|
||||
def _support_status(value: Any) -> str:
|
||||
status = str(value or "").strip().lower().replace(" ", "_")
|
||||
return {
|
||||
"new": "RECEIVED",
|
||||
"received": "RECEIVED",
|
||||
"pending": "PENDING_APPROVAL",
|
||||
"pending_approval": "PENDING_APPROVAL",
|
||||
"approved": "APPROVED",
|
||||
"rejected": "REJECTED",
|
||||
"review": "IN_REVIEW",
|
||||
"in_review": "IN_REVIEW",
|
||||
"detailed_review": "DETAILED_REVIEW",
|
||||
"in_progress": "IN_PROGRESS",
|
||||
"processing": "IN_PROGRESS",
|
||||
"resolved": "RESOLVED",
|
||||
"complete": "RESOLVED",
|
||||
"completed": "RESOLVED",
|
||||
"closed": "CLOSED",
|
||||
}.get(status, "RECEIVED")
|
||||
|
||||
|
||||
ADMIN_CANDIDATE_EMAILS = {
|
||||
"cjy627@hanmaceng.co.kr",
|
||||
"b23072@hanmaceng.co.kr",
|
||||
"kjy0426@hanmaceng.co.kr",
|
||||
"b21367@hanmaceng.co.kr",
|
||||
"rmsgud1202@hanmaceng.co.kr",
|
||||
}
|
||||
|
||||
|
||||
def write_support_ticket_comment_sql(
|
||||
posts: list[dict[str, Any]],
|
||||
comments: list[dict[str, Any]],
|
||||
output: Path,
|
||||
workspace_id: int,
|
||||
) -> None:
|
||||
"""Write idempotent support ticket/mapping/comment migration SQL."""
|
||||
|
||||
lines = [
|
||||
"-- Generated from EGBIM qa_posts and qa_comments.",
|
||||
"-- Run against baron_support after the support schema migration.",
|
||||
"SET NAMES utf8mb4;",
|
||||
"USE `baron_support`;",
|
||||
f"SET @EGBIM_WORKSPACE_ID = {workspace_id};",
|
||||
"INSERT INTO support_category_codes (code,name,sort_order) VALUES "
|
||||
"('ERROR_QNA','오류 문의',51),('IMPROVEMENT_QNA','개선 문의',52) "
|
||||
"ON DUPLICATE KEY UPDATE name=VALUES(name),sort_order=VALUES(sort_order);",
|
||||
"START TRANSACTION;",
|
||||
"INSERT INTO migration_batches (batch_name,source_system,status,executed_by,notes) "
|
||||
"SELECT 'EGBIM_QA_POSTS_COMMENTS_V1','EGBIM_QA','RUNNING','migration:EGBIM_QA',"
|
||||
"'Migrated qa_posts and qa_comments' FROM DUAL WHERE NOT EXISTS ("
|
||||
"SELECT 1 FROM migration_batches WHERE batch_name='EGBIM_QA_POSTS_COMMENTS_V1' "
|
||||
"AND source_system='EGBIM_QA' AND status='COMPLETED');",
|
||||
"SET @EGBIM_BATCH_ID = (SELECT id FROM migration_batches "
|
||||
"WHERE batch_name='EGBIM_QA_POSTS_COMMENTS_V1' AND source_system='EGBIM_QA' "
|
||||
"ORDER BY id DESC LIMIT 1);",
|
||||
]
|
||||
|
||||
for row in posts:
|
||||
source_id = str(row["post_id"])
|
||||
title = str(row.get("title") or f"EGBIM 문의 #{source_id}")
|
||||
description = str(row.get("content") or "")
|
||||
requester_id = str(row.get("login_id") or row.get("user_id") or f"legacy:{source_id}")
|
||||
requester_email = str(row.get("login_id") or "") or None
|
||||
source_is_secret = bool(int(row.get("is_secret") or 0))
|
||||
source_is_private = bool(int(row.get("is_private") or 0))
|
||||
migration_key = f"EGBIM_QA:POST:{source_id}"
|
||||
extra_fields = {
|
||||
"migration_key": migration_key,
|
||||
"source_system": "EGBIM_QA",
|
||||
"source_post_id": source_id,
|
||||
"source_status": row.get("status"),
|
||||
}
|
||||
lines.append(
|
||||
"INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,"
|
||||
"requester_contact,requester_email,requester_name,requester_department,"
|
||||
"requester_phone_number,ticket_type,source_system,title,description,category_code,"
|
||||
"status_code,approval_status,sync_status,issue_link_status,is_secret,"
|
||||
"requires_approval,priority,extra_fields,created_at,updated_at) "
|
||||
f"SELECT @EGBIM_WORKSPACE_ID,{sql_string(requester_id)},'EGBIM_QA',"
|
||||
f"{sql_string(row.get('phone'))},{sql_string(requester_email)},"
|
||||
f"{sql_string(row.get('user_name'))},{sql_string(row.get('department'))},"
|
||||
f"{sql_string(row.get('phone'))},'GENERAL','EGBIM_QA',{sql_string(title)},"
|
||||
f"{sql_string(description)},{sql_string(_support_category(row.get('category')))},"
|
||||
f"{sql_string(_support_status(row.get('status')))},'NOT_REQUIRED','SYNCED',"
|
||||
f"'NOT_LINKED',{1 if (source_is_secret or source_is_private) else 0},0,'NORMAL',"
|
||||
f"{sql_json(extra_fields)},{sql_string(row.get('created_at'))},"
|
||||
f"{sql_string(row.get('updated_at') or row.get('created_at'))} FROM DUAL WHERE NOT EXISTS ("
|
||||
"SELECT 1 FROM support_tickets WHERE workspace_id=@EGBIM_WORKSPACE_ID "
|
||||
f"AND JSON_UNQUOTE(JSON_EXTRACT(extra_fields,'$.migration_key'))={sql_string(migration_key)});"
|
||||
)
|
||||
lines.append(
|
||||
"INSERT INTO migration_mappings (batch_id,source_system,source_entity_type,"
|
||||
"source_entity_id,source_parent_id,workspace_id,ticket_id,abc_feedback_id,"
|
||||
"migration_status,error_message) "
|
||||
"SELECT @EGBIM_BATCH_ID,'EGBIM_QA','POST',"
|
||||
f"{sql_string(source_id)},NULL,@EGBIM_WORKSPACE_ID,st.id,NULL,'MIGRATED',NULL "
|
||||
"FROM support_tickets st WHERE st.workspace_id=@EGBIM_WORKSPACE_ID "
|
||||
f"AND JSON_UNQUOTE(JSON_EXTRACT(st.extra_fields,'$.migration_key'))={sql_string(migration_key)} "
|
||||
"AND NOT EXISTS (SELECT 1 FROM migration_mappings mm WHERE mm.source_system='EGBIM_QA' "
|
||||
"AND mm.source_entity_type='POST' "
|
||||
f"AND mm.source_entity_id={sql_string(source_id)});"
|
||||
)
|
||||
|
||||
lines.append(
|
||||
"UPDATE migration_mappings mm JOIN support_tickets st ON st.workspace_id=mm.workspace_id "
|
||||
"AND JSON_UNQUOTE(JSON_EXTRACT(st.extra_fields,'$.migration_key'))="
|
||||
"CONCAT('EGBIM_QA:POST:',mm.source_entity_id) SET mm.ticket_id=st.id,"
|
||||
"mm.migration_status='MIGRATED' WHERE mm.source_system='EGBIM_QA' "
|
||||
"AND mm.source_entity_type='POST' AND mm.workspace_id=@EGBIM_WORKSPACE_ID "
|
||||
"AND mm.ticket_id IS NULL;"
|
||||
)
|
||||
|
||||
for row in comments:
|
||||
source_id = str(row["comment_id"])
|
||||
post_id = str(row["post_id"])
|
||||
commenter = str(row.get("commenter") or f"legacy-commenter:{source_id}")
|
||||
is_internal = commenter.strip().lower() in ADMIN_CANDIDATE_EMAILS
|
||||
comment_key = f"EGBIM_QA:{source_id}"
|
||||
lines.append(
|
||||
"INSERT INTO ticket_comments (ticket_id,parent_comment_id,author_id,"
|
||||
"author_tenant_id,author_name,comment_type,content,is_internal,abc_comment_id,"
|
||||
"sync_status,edited_at,created_at,updated_at) SELECT mm.ticket_id,NULL,"
|
||||
f"{sql_string(commenter)},'EGBIM_QA',{sql_string(row.get('user_name') or commenter)},"
|
||||
f"{sql_string('ADMIN' if is_internal else 'COMMENT')},{sql_string(row.get('content') or '')},"
|
||||
f"{1 if is_internal else 0},{sql_string(comment_key)},'SYNCED',"
|
||||
f"{sql_string(row.get('updated_at'))},{sql_string(row.get('created_at'))},"
|
||||
f"{sql_string(row.get('updated_at') or row.get('created_at'))} FROM migration_mappings mm "
|
||||
"WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' "
|
||||
f"AND mm.source_entity_id={sql_string(post_id)} AND mm.ticket_id IS NOT NULL "
|
||||
"AND NOT EXISTS (SELECT 1 FROM ticket_comments WHERE abc_comment_id="
|
||||
f"{sql_string(comment_key)});"
|
||||
)
|
||||
|
||||
lines.extend([
|
||||
"UPDATE migration_batches SET status='COMPLETED',completed_at=CURRENT_TIMESTAMP "
|
||||
"WHERE id=@EGBIM_BATCH_ID;",
|
||||
"COMMIT;",
|
||||
"",
|
||||
])
|
||||
output.write_text("\n".join(lines), encoding="utf-8")
|
||||
|
||||
def write_attachment_sql(records: list[FileRecord], output: Path) -> None:
|
||||
lines = [
|
||||
"-- Generated for baron_support.attachments.",
|
||||
"-- Run after EGBIM_QA POST/COMMENT migration mappings exist.",
|
||||
"-- Comment migration must set ticket_comments.abc_comment_id = EGBIM_QA:<source comment id>.",
|
||||
"SET NAMES utf8mb4;",
|
||||
"USE `baron_support`;",
|
||||
"SET @EGBIM_WORKSPACE_ID = (SELECT id FROM workspaces WHERE workspace_code='EGBIM');",
|
||||
"SET @EGBIM_UPLOADER_ID = 'migration:EGBIM_QA';",
|
||||
"SET @EGBIM_UPLOADER_TENANT_ID = 'migration:EGBIM_QA';",
|
||||
"START TRANSACTION;",
|
||||
]
|
||||
for record in records:
|
||||
if record.status != "READY" or record.entity_type == "COMMENT_THUMBNAIL":
|
||||
continue
|
||||
mime_type = mimetypes.guess_type(record.original_name)[0] or "application/octet-stream"
|
||||
extension = safe_extension(record.original_name).lstrip(".") or None
|
||||
attachment_key = f"EGBIM_QA:{record.entity_type}:{record.source_id}"
|
||||
if record.entity_type == "POST_ATTACHMENT":
|
||||
resolver = (
|
||||
"SELECT mm.ticket_id AS ticket_id, NULL AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM migration_mappings mm "
|
||||
"WHERE mm.source_system='EGBIM_QA' AND mm.source_entity_type='POST' "
|
||||
f"AND mm.source_entity_id={sql_string(record.parent_id)} AND mm.ticket_id IS NOT NULL LIMIT 1"
|
||||
)
|
||||
else:
|
||||
resolver = (
|
||||
"SELECT tc.ticket_id AS ticket_id, tc.id AS comment_id, @EGBIM_WORKSPACE_ID AS workspace_id FROM ticket_comments tc "
|
||||
f"WHERE tc.abc_comment_id={sql_string('EGBIM_QA:' + record.parent_id)} LIMIT 1"
|
||||
)
|
||||
lines.append(
|
||||
"INSERT INTO attachments (ticket_id,comment_id,workspace_id,uploader_id,uploader_tenant_id,"
|
||||
"original_file_name,stored_file_name,storage_provider,storage_bucket,storage_key,mime_type,"
|
||||
"file_extension,file_size,checksum_sha256,abc_attachment_id,attachment_status,created_at,updated_at) "
|
||||
"SELECT resolved.ticket_id,resolved.comment_id,resolved.workspace_id,@EGBIM_UPLOADER_ID,"
|
||||
f"@EGBIM_UPLOADER_TENANT_ID,{sql_string(record.original_name)},"
|
||||
f"{sql_string(Path(record.storage_key).name)},'LOCAL','/app/uploads',{sql_string(record.storage_key)},"
|
||||
f"{sql_string(mime_type)},{sql_string(extension)},{record.file_size or 0},{sql_string(record.checksum)},"
|
||||
f"{sql_string(attachment_key)},'ACTIVE',{sql_string(record.uploaded_at)},{sql_string(record.uploaded_at)} "
|
||||
f"FROM ({resolver}) resolved WHERE NOT EXISTS (SELECT 1 FROM attachments WHERE abc_attachment_id={sql_string(attachment_key)});"
|
||||
)
|
||||
lines.extend(["COMMIT;", ""])
|
||||
output.write_text("\n".join(lines), encoding="utf-8")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--source-sql", type=Path, default=Path("scripts/egbim_qa.sql"))
|
||||
parser.add_argument("--source-uploads", type=Path, required=True)
|
||||
parser.add_argument("--target-uploads", type=Path, default=Path("uploads"))
|
||||
parser.add_argument("--output-dir", type=Path, default=Path("scripts/generated/egbim_migration"))
|
||||
# EGBIM workspace is mapped to ABC userfeedback channel_id=2.
|
||||
parser.add_argument("--channel-id", type=int, default=2)
|
||||
parser.add_argument("--workspace-id", type=int, default=6)
|
||||
parser.add_argument("--copy-files", action="store_true")
|
||||
args = parser.parse_args()
|
||||
|
||||
text = args.source_sql.read_text(encoding="utf-8")
|
||||
posts = load_table(text, "qa_posts")
|
||||
attachments = load_table(text, "qa_attachments")
|
||||
comment_images = load_table(text, "qa_comment_images")
|
||||
comments = load_table(text, "qa_comments")
|
||||
args.output_dir.mkdir(parents=True, exist_ok=True)
|
||||
records = build_file_records(attachments, comment_images, args.source_uploads, args.target_uploads, args.copy_files)
|
||||
write_manifest(records, args.output_dir / "uploads_manifest.csv")
|
||||
write_feedback_sql(posts, args.output_dir / "userfeedback_feedbacks.sql", args.channel_id)
|
||||
write_support_ticket_comment_sql(
|
||||
posts, comments, args.output_dir / "support_tickets_comments.sql", args.workspace_id
|
||||
)
|
||||
write_support_secret_sql(posts, args.output_dir / "support_ticket_secrets.sql")
|
||||
write_attachment_sql(records, args.output_dir / "support_attachments.sql")
|
||||
ready = sum(record.status == "READY" for record in records)
|
||||
missing = sum(record.status == "MISSING" for record in records)
|
||||
print(f"posts={len(posts)} comments={len(comments)} post_attachments={len(attachments)} comment_images={len(comment_images)}")
|
||||
print(f"file_records={len(records)} ready={ready} missing={missing}")
|
||||
print(f"output={args.output_dir}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,272 @@
|
||||
-- Q&A_Platform CRUD test data: 50 realistic Korean feedbacks
|
||||
-- ABC: userfeedback project_id=1/channel_id=1; Secretary: baron_support workspace_id=10/channel_id=1
|
||||
-- Current staging ABC dummy IDs are 2..51. Run the ABC section first.
|
||||
-- If IDs differ in another database, update abc_feedback_id in the Secretary section.
|
||||
-- The ABC section updates current staging IDs and inserts missing rows idempotently.
|
||||
|
||||
-- ================================================================
|
||||
-- 1) Run against the ABC userfeedback database
|
||||
-- ================================================================
|
||||
START TRANSACTION;
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','로그인 후 문의 등록 화면이 비어 있습니다','contents','BARON-SSO 로그인은 정상적으로 완료되었지만 문의 등록 화면에 입력 폼이 표시되지 않습니다. 새로고침과 시크릿 창에서도 동일합니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_01') WHERE id=2 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','로그인 후 문의 등록 화면이 비어 있습니다','contents','BARON-SSO 로그인은 정상적으로 완료되었지만 문의 등록 화면에 입력 폼이 표시되지 않습니다. 새로고침과 시크릿 창에서도 동일합니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_01') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_01');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','SSO 인증 후 다시 로그인 화면으로 돌아옵니다','contents','SSO 인증을 완료하면 잠시 로딩된 뒤 다시 로그인 화면으로 이동합니다. 같은 계정으로 여러 번 시도해도 문의 작성 화면에 진입할 수 없습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_02') WHERE id=3 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','SSO 인증 후 다시 로그인 화면으로 돌아옵니다','contents','SSO 인증을 완료하면 잠시 로딩된 뒤 다시 로그인 화면으로 이동합니다. 같은 계정으로 여러 번 시도해도 문의 작성 화면에 진입할 수 없습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_02') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_02');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','모바일에서 제목 입력란이 화면 밖으로 밀립니다','contents','휴대전화에서 문의를 작성할 때 제목 입력란 오른쪽이 잘립니다. 가로 스크롤 없이 전체 입력란을 사용할 수 있도록 조정해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_03') WHERE id=4 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','모바일에서 제목 입력란이 화면 밖으로 밀립니다','contents','휴대전화에서 문의를 작성할 때 제목 입력란 오른쪽이 잘립니다. 가로 스크롤 없이 전체 입력란을 사용할 수 있도록 조정해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_03') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_03');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','첨부파일 업로드가 중간에 멈춥니다','contents','약 12MB 크기의 JPG 파일을 첨부하면 업로드 진행률이 80퍼센트에서 멈춥니다. PC와 모바일에서 모두 같은 현상이 발생합니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_04') WHERE id=5 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','첨부파일 업로드가 중간에 멈춥니다','contents','약 12MB 크기의 JPG 파일을 첨부하면 업로드 진행률이 80퍼센트에서 멈춥니다. PC와 모바일에서 모두 같은 현상이 발생합니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_04') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_04');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','여러 파일을 한 번에 첨부하고 싶습니다','contents','현재는 파일을 하나씩 선택해야 해서 여러 자료를 첨부할 때 번거롭습니다. 여러 파일을 동시에 선택할 수 있으면 좋겠습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_05') WHERE id=6 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','여러 파일을 한 번에 첨부하고 싶습니다','contents','현재는 파일을 하나씩 선택해야 해서 여러 자료를 첨부할 때 번거롭습니다. 여러 파일을 동시에 선택할 수 있으면 좋겠습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_05') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_05');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 저장 버튼을 눌러도 반응이 없습니다','contents','제목과 내용을 입력한 뒤 저장 버튼을 눌렀지만 아무 메시지도 표시되지 않고 목록으로 이동하지 않습니다. 콘솔에는 요청 실패 로그가 남습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_06') WHERE id=7 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 저장 버튼을 눌러도 반응이 없습니다','contents','제목과 내용을 입력한 뒤 저장 버튼을 눌렀지만 아무 메시지도 표시되지 않고 목록으로 이동하지 않습니다. 콘솔에는 요청 실패 로그가 남습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_06') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_06');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','작성 중인 문의가 새로고침 후 사라집니다','contents','긴 내용을 작성하다가 실수로 새로고침했더니 입력한 내용이 모두 사라졌습니다. 임시 저장이나 페이지 이탈 확인 기능이 있으면 좋겠습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_07') WHERE id=8 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','작성 중인 문의가 새로고침 후 사라집니다','contents','긴 내용을 작성하다가 실수로 새로고침했더니 입력한 내용이 모두 사라졌습니다. 임시 저장이나 페이지 이탈 확인 기능이 있으면 좋겠습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_07') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_07');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 목록에서 최신 글이 먼저 보이지 않습니다','contents','방금 등록한 문의가 목록 마지막 부분에 표시됩니다. 최근에 작성한 문의가 가장 위에 보이도록 기본 정렬을 최신순으로 바꿔 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_08') WHERE id=9 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 목록에서 최신 글이 먼저 보이지 않습니다','contents','방금 등록한 문의가 목록 마지막 부분에 표시됩니다. 최근에 작성한 문의가 가장 위에 보이도록 기본 정렬을 최신순으로 바꿔 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_08') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_08');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 목록 페이지 이동이 정상적으로 되지 않습니다','contents','문의가 여러 페이지로 나뉜 상태에서 다음 페이지를 눌러도 같은 목록이 반복됩니다. 페이지 번호를 직접 눌러도 결과가 바뀌지 않습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_09') WHERE id=10 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 목록 페이지 이동이 정상적으로 되지 않습니다','contents','문의가 여러 페이지로 나뉜 상태에서 다음 페이지를 눌러도 같은 목록이 반복됩니다. 페이지 번호를 직접 눌러도 결과가 바뀌지 않습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_09') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_09');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 제목으로 검색하면 결과가 누락됩니다','contents','목록에 존재하는 제목의 일부 단어로 검색했는데 결과가 표시되지 않습니다. 한글과 영문을 섞어 검색하는 경우도 확인 부탁드립니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_10') WHERE id=11 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 제목으로 검색하면 결과가 누락됩니다','contents','목록에 존재하는 제목의 일부 단어로 검색했는데 결과가 표시되지 않습니다. 한글과 영문을 섞어 검색하는 경우도 확인 부탁드립니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_10') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_10');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','특수문자가 포함된 제목이 깨져 보입니다','contents','제목에 괄호와 앰퍼샌드를 입력해 저장했더니 상세 화면에서 문자가 깨져 보입니다. 입력한 그대로 표시되면 좋겠습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_11') WHERE id=12 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','특수문자가 포함된 제목이 깨져 보입니다','contents','제목에 괄호와 앰퍼샌드를 입력해 저장했더니 상세 화면에서 문자가 깨져 보입니다. 입력한 그대로 표시되면 좋겠습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_11') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_11');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','긴 문의 내용의 줄바꿈이 사라집니다','contents','여러 문단으로 입력한 내용이 저장 후 한 줄로 붙어 표시됩니다. 작성할 때의 줄바꿈과 문단 간격이 유지되면 좋겠습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_12') WHERE id=13 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','긴 문의 내용의 줄바꿈이 사라집니다','contents','여러 문단으로 입력한 내용이 저장 후 한 줄로 붙어 표시됩니다. 작성할 때의 줄바꿈과 문단 간격이 유지되면 좋겠습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_12') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_12');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 상세 화면에서 첨부파일을 내려받을 수 없습니다','contents','상세 화면에 파일명은 표시되지만 파일명을 클릭해도 다운로드가 시작되지 않습니다. Chrome과 Edge에서 모두 확인했습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_13') WHERE id=14 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 상세 화면에서 첨부파일을 내려받을 수 없습니다','contents','상세 화면에 파일명은 표시되지만 파일명을 클릭해도 다운로드가 시작되지 않습니다. Chrome과 Edge에서 모두 확인했습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_13') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_13');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','첨부파일 삭제 후에도 목록에 남아 있습니다','contents','문의 작성 중 첨부파일을 삭제했지만 저장 후 상세 화면을 다시 열면 삭제한 파일이 그대로 표시됩니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_14') WHERE id=15 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','첨부파일 삭제 후에도 목록에 남아 있습니다','contents','문의 작성 중 첨부파일을 삭제했지만 저장 후 상세 화면을 다시 열면 삭제한 파일이 그대로 표시됩니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_14') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_14');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','답변 등록 후 목록 상태가 바로 바뀌지 않습니다','contents','관리자가 답변을 등록한 뒤 목록으로 돌아왔지만 상태가 이전 상태로 남아 있습니다. 새로고침해야 변경된 상태가 표시됩니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_15') WHERE id=16 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','답변 등록 후 목록 상태가 바로 바뀌지 않습니다','contents','관리자가 답변을 등록한 뒤 목록으로 돌아왔지만 상태가 이전 상태로 남아 있습니다. 새로고침해야 변경된 상태가 표시됩니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_15') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_15');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','댓글 작성 후 댓글 수가 갱신되지 않습니다','contents','상세 화면에서 댓글을 작성하면 내용은 보이지만 댓글 개수가 즉시 변경되지 않습니다. 작성 완료 후 개수도 갱신해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_16') WHERE id=17 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','댓글 작성 후 댓글 수가 갱신되지 않습니다','contents','상세 화면에서 댓글을 작성하면 내용은 보이지만 댓글 개수가 즉시 변경되지 않습니다. 작성 완료 후 개수도 갱신해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_16') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_16');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','댓글을 수정하면 수정 시간이 표시되지 않습니다','contents','댓글 내용을 수정한 뒤 수정 표시가 남지 않고 원래 작성 시간만 보입니다. 수정된 댓글임을 알 수 있도록 표시해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_17') WHERE id=18 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','댓글을 수정하면 수정 시간이 표시되지 않습니다','contents','댓글 내용을 수정한 뒤 수정 표시가 남지 않고 원래 작성 시간만 보입니다. 수정된 댓글임을 알 수 있도록 표시해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_17') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_17');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','댓글 삭제 확인 창의 버튼 문구가 헷갈립니다','contents','댓글 삭제를 누르면 확인 창의 취소와 삭제 버튼 구분이 어렵습니다. 삭제 작업임을 명확히 알 수 있도록 개선해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_18') WHERE id=19 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','댓글 삭제 확인 창의 버튼 문구가 헷갈립니다','contents','댓글 삭제를 누르면 확인 창의 취소와 삭제 버튼 구분이 어렵습니다. 삭제 작업임을 명확히 알 수 있도록 개선해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_18') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_18');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','댓글에 여러 줄의 내용을 입력할 수 없습니다','contents','댓글 입력란이 한 줄 입력으로만 동작해서 긴 설명을 작성하기 어렵습니다. 여러 줄을 입력할 수 있으면 좋겠습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_19') WHERE id=20 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','댓글에 여러 줄의 내용을 입력할 수 없습니다','contents','댓글 입력란이 한 줄 입력으로만 동작해서 긴 설명을 작성하기 어렵습니다. 여러 줄을 입력할 수 있으면 좋겠습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_19') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_19');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 상세 화면의 버튼 위치가 일정하지 않습니다','contents','문의마다 수정, 삭제, 목록 버튼 위치가 다르게 보입니다. 댓글 영역과 겹치지 않도록 상세 화면 상단에 배치해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_20') WHERE id=21 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 상세 화면의 버튼 위치가 일정하지 않습니다','contents','문의마다 수정, 삭제, 목록 버튼 위치가 다르게 보입니다. 댓글 영역과 겹치지 않도록 상세 화면 상단에 배치해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_20') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_20');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','수정한 문의 내용이 저장 후 이전 내용으로 돌아갑니다','contents','상세 화면에서 제목과 내용을 수정하고 저장했지만 다시 조회하면 수정 전 내용이 표시됩니다. 저장 API와 DB 반영을 확인해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_21') WHERE id=22 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','수정한 문의 내용이 저장 후 이전 내용으로 돌아갑니다','contents','상세 화면에서 제목과 내용을 수정하고 저장했지만 다시 조회하면 수정 전 내용이 표시됩니다. 저장 API와 DB 반영을 확인해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_21') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_21');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 삭제 후 목록에 삭제된 글이 남아 있습니다','contents','삭제 성공 메시지는 표시되지만 목록으로 돌아오면 삭제한 문의가 계속 보입니다. 새로고침해야 사라집니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_22') WHERE id=23 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 삭제 후 목록에 삭제된 글이 남아 있습니다','contents','삭제 성공 메시지는 표시되지만 목록으로 돌아오면 삭제한 문의가 계속 보입니다. 새로고침해야 사라집니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_22') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_22');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','삭제한 문의의 상세 URL에 접근할 수 있습니다','contents','문의 삭제 후 브라우저 뒤로 가기로 상세 URL에 다시 접근하면 내용이 표시됩니다. 삭제된 문의는 조회되지 않도록 처리해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_23') WHERE id=24 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','삭제한 문의의 상세 URL에 접근할 수 있습니다','contents','문의 삭제 후 브라우저 뒤로 가기로 상세 URL에 다시 접근하면 내용이 표시됩니다. 삭제된 문의는 조회되지 않도록 처리해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_23') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_23');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','관리자와 일반 사용자의 메뉴가 동일하게 보입니다','contents','일반 사용자로 로그인했는데 관리자 설정 메뉴가 잠시 표시됩니다. 권한에 따라 메뉴와 화면을 일관되게 구분해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_24') WHERE id=25 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','관리자와 일반 사용자의 메뉴가 동일하게 보입니다','contents','일반 사용자로 로그인했는데 관리자 설정 메뉴가 잠시 표시됩니다. 권한에 따라 메뉴와 화면을 일관되게 구분해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_24') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_24');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','프로젝트를 전환하면 이전 프로젝트 문의가 보입니다','contents','프로젝트 선택기로 다른 프로젝트로 이동했는데 잠시 이전 프로젝트 문의가 표시됩니다. 프로젝트 전환 시 목록을 초기화해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_25') WHERE id=26 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','프로젝트를 전환하면 이전 프로젝트 문의가 보입니다','contents','프로젝트 선택기로 다른 프로젝트로 이동했는데 잠시 이전 프로젝트 문의가 표시됩니다. 프로젝트 전환 시 목록을 초기화해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_25') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_25');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','Q&A 채널 변경 후 문의 양식이 갱신되지 않습니다','contents','다른 채널을 선택했지만 이전 채널의 문의 양식이 계속 표시됩니다. 채널 변경 시 해당 폼 템플릿을 다시 불러와야 합니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_26') WHERE id=27 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','Q&A 채널 변경 후 문의 양식이 갱신되지 않습니다','contents','다른 채널을 선택했지만 이전 채널의 문의 양식이 계속 표시됩니다. 채널 변경 시 해당 폼 템플릿을 다시 불러와야 합니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_26') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_26');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','폼 템플릿의 필수 표시와 실제 검증이 다릅니다','contents','화면에서는 선택 항목처럼 보이는 필드가 저장 시 필수 입력 오류를 반환합니다. 화면과 서버 검증 규칙을 맞춰 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_27') WHERE id=28 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','폼 템플릿의 필수 표시와 실제 검증이 다릅니다','contents','화면에서는 선택 항목처럼 보이는 필드가 저장 시 필수 입력 오류를 반환합니다. 화면과 서버 검증 규칙을 맞춰 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_27') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_27');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 등록 시 공백만 입력해도 저장됩니다','contents','내용 입력란에 공백만 입력하고 저장했는데 문의가 등록됩니다. 공백만 있는 제목과 내용은 저장되지 않아야 합니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_28') WHERE id=29 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 등록 시 공백만 입력해도 저장됩니다','contents','내용 입력란에 공백만 입력하고 저장했는데 문의가 등록됩니다. 공백만 있는 제목과 내용은 저장되지 않아야 합니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_28') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_28');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 등록 시간이 실제보다 9시간 빠릅니다','contents','등록 시간과 수정 시간이 실제보다 9시간 빠르게 표시됩니다. 스테이징 화면의 시간대가 한국 기준인지 확인 부탁드립니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_29') WHERE id=30 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 등록 시간이 실제보다 9시간 빠릅니다','contents','등록 시간과 수정 시간이 실제보다 9시간 빠르게 표시됩니다. 스테이징 화면의 시간대가 한국 기준인지 확인 부탁드립니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_29') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_29');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','새로고침하면 로그인 세션이 만료된 것으로 표시됩니다','contents','로그인 직후에는 정상적으로 문의를 볼 수 있지만 새로고침하면 유효하지 않은 로그인 세션이라는 메시지가 표시됩니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_30') WHERE id=31 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','새로고침하면 로그인 세션이 만료된 것으로 표시됩니다','contents','로그인 직후에는 정상적으로 문의를 볼 수 있지만 새로고침하면 유효하지 않은 로그인 세션이라는 메시지가 표시됩니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_30') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_30');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','액세스 토큰 만료 후 자동 갱신이 동작하지 않습니다','contents','페이지를 오래 열어 둔 뒤 목록을 조회하면 401 오류가 발생하고 로그인 화면으로 이동합니다. refresh token으로 재시도되면 좋겠습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_31') WHERE id=32 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','액세스 토큰 만료 후 자동 갱신이 동작하지 않습니다','contents','페이지를 오래 열어 둔 뒤 목록을 조회하면 401 오류가 발생하고 로그인 화면으로 이동합니다. refresh token으로 재시도되면 좋겠습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_31') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_31');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','로그아웃 후 뒤로 가기로 이전 화면이 보입니다','contents','로그아웃한 뒤 브라우저 뒤로 가기를 누르면 이전 문의 화면의 내용이 잠시 표시됩니다. 보호된 페이지가 캐시되지 않도록 해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_32') WHERE id=33 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','로그아웃 후 뒤로 가기로 이전 화면이 보입니다','contents','로그아웃한 뒤 브라우저 뒤로 가기를 누르면 이전 문의 화면의 내용이 잠시 표시됩니다. 보호된 페이지가 캐시되지 않도록 해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_32') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_32');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','BARON-SSO 로그아웃 후 오류 페이지로 이동합니다','contents','로그아웃 버튼을 누르면 앱 로그인 화면이 아니라 SSO invalid_request 오류 페이지로 이동합니다. 로컬 세션 삭제 후 SSO 로그인 버튼 화면으로 돌아오면 좋겠습니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_33') WHERE id=34 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','BARON-SSO 로그아웃 후 오류 페이지로 이동합니다','contents','로그아웃 버튼을 누르면 앱 로그인 화면이 아니라 SSO invalid_request 오류 페이지로 이동합니다. 로컬 세션 삭제 후 SSO 로그인 버튼 화면으로 돌아오면 좋겠습니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_33') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_33');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','SSO 로그인 버튼이 첫 화면에 표시되지 않습니다','contents','테넌트에서 OAuth를 사용하도록 설정했는데 로그인 화면에 이메일 로그인만 표시됩니다. 설정 조회 시점을 확인해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_34') WHERE id=35 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','SSO 로그인 버튼이 첫 화면에 표시되지 않습니다','contents','테넌트에서 OAuth를 사용하도록 설정했는데 로그인 화면에 이메일 로그인만 표시됩니다. 설정 조회 시점을 확인해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_34') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_34');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','로그인한 사용자의 이름이 댓글에 표시되지 않습니다','contents','로그인한 계정으로 댓글을 작성했지만 작성자 이름이 빈 값으로 표시됩니다. SSO 프로필 이름이나 이메일을 표시해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_35') WHERE id=36 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','로그인한 사용자의 이름이 댓글에 표시되지 않습니다','contents','로그인한 계정으로 댓글을 작성했지만 작성자 이름이 빈 값으로 표시됩니다. SSO 프로필 이름이나 이메일을 표시해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_35') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_35');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','다른 사용자가 작성한 문의를 수정할 수 있습니다','contents','일반 사용자가 다른 사용자의 문의 상세 URL을 직접 입력하면 수정 화면에 접근할 수 있습니다. 작성자 본인과 관리자만 수정할 수 있어야 합니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_36') WHERE id=37 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','다른 사용자가 작성한 문의를 수정할 수 있습니다','contents','일반 사용자가 다른 사용자의 문의 상세 URL을 직접 입력하면 수정 화면에 접근할 수 있습니다. 작성자 본인과 관리자만 수정할 수 있어야 합니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_36') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_36');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','일반 사용자가 문의 목록 전체를 볼 수 있습니다','contents','일반 사용자 계정으로 로그인했을 때 다른 사용자의 문의까지 표시됩니다. END_USER는 본인 문의만 조회할 수 있어야 하는지 확인해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_37') WHERE id=38 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','일반 사용자가 문의 목록 전체를 볼 수 있습니다','contents','일반 사용자 계정으로 로그인했을 때 다른 사용자의 문의까지 표시됩니다. END_USER는 본인 문의만 조회할 수 있어야 하는지 확인해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_37') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_37');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','프로젝트 관리자의 문의 목록이 비어 있습니다','contents','프로젝트 관리자 권한을 받았지만 해당 프로젝트의 문의 목록이 표시되지 않습니다. members와 workspace access 매핑을 확인해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_38') WHERE id=39 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','프로젝트 관리자의 문의 목록이 비어 있습니다','contents','프로젝트 관리자 권한을 받았지만 해당 프로젝트의 문의 목록이 표시되지 않습니다. members와 workspace access 매핑을 확인해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_38') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_38');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','피드백 등록 후 관리자 목록에 바로 보이지 않습니다','contents','사용자가 문의를 등록한 뒤 관리자가 피드백 목록을 확인했지만 새 글이 즉시 표시되지 않습니다. 내부 티켓과 ABC 동기화를 확인해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_39') WHERE id=40 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','피드백 등록 후 관리자 목록에 바로 보이지 않습니다','contents','사용자가 문의를 등록한 뒤 관리자가 피드백 목록을 확인했지만 새 글이 즉시 표시되지 않습니다. 내부 티켓과 ABC 동기화를 확인해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_39') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_39');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','ABC 피드백과 내부 티켓의 제목이 다릅니다','contents','문의 등록 후 관리자 화면과 지원 화면에서 제목이 서로 다르게 표시됩니다. 두 DB에 동일한 제목이 저장되는지 확인해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_40') WHERE id=41 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','ABC 피드백과 내부 티켓의 제목이 다릅니다','contents','문의 등록 후 관리자 화면과 지원 화면에서 제목이 서로 다르게 표시됩니다. 두 DB에 동일한 제목이 저장되는지 확인해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_40') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_40');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','피드백 상세 조회 시 502 오류가 발생합니다','contents','목록에서는 문의가 보이지만 특정 글의 상세 화면을 열면 502 Bad Gateway가 표시됩니다. 외부 피드백 매핑 ID를 확인해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_41') WHERE id=42 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','피드백 상세 조회 시 502 오류가 발생합니다','contents','목록에서는 문의가 보이지만 특정 글의 상세 화면을 열면 502 Bad Gateway가 표시됩니다. 외부 피드백 매핑 ID를 확인해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_41') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_41');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','피드백 삭제 후 내부 티켓이 남아 있습니다','contents','관리자 화면에서 피드백을 삭제했지만 지원 화면에는 동일한 문의가 남아 있습니다. ABC 삭제와 내부 티켓 상태 변경을 함께 처리해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_42') WHERE id=43 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','피드백 삭제 후 내부 티켓이 남아 있습니다','contents','관리자 화면에서 피드백을 삭제했지만 지원 화면에는 동일한 문의가 남아 있습니다. ABC 삭제와 내부 티켓 상태 변경을 함께 처리해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_42') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_42');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 내용에 URL을 입력하면 저장에 실패합니다','contents','내용에 https URL과 쿼리 파라미터를 포함하면 저장 요청이 400 오류로 실패합니다. URL이 포함된 본문도 저장되어야 합니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_43') WHERE id=44 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 내용에 URL을 입력하면 저장에 실패합니다','contents','내용에 https URL과 쿼리 파라미터를 포함하면 저장 요청이 400 오류로 실패합니다. URL이 포함된 본문도 저장되어야 합니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_43') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_43');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','브라우저를 바꾸면 작성한 문의가 보이지 않습니다','contents','같은 계정으로 Chrome에서 작성한 문의가 Edge에서는 표시되지 않습니다. 로그인 계정과 테넌트 기준 조회를 확인해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_44') WHERE id=45 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','브라우저를 바꾸면 작성한 문의가 보이지 않습니다','contents','같은 계정으로 Chrome에서 작성한 문의가 Edge에서는 표시되지 않습니다. 로그인 계정과 테넌트 기준 조회를 확인해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_44') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_44');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','문의 목록의 필터를 초기화할 수 없습니다','contents','상태 필터를 적용한 뒤 초기화 버튼을 눌러도 이전 필터가 유지됩니다. 초기화하면 전체 목록으로 돌아가야 합니다.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_45') WHERE id=46 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','문의 목록의 필터를 초기화할 수 없습니다','contents','상태 필터를 적용한 뒤 초기화 버튼을 눌러도 이전 필터가 유지됩니다. 초기화하면 전체 목록으로 돌아가야 합니다.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_45') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_45');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','상태 필터 적용 후 페이지 수가 잘못 표시됩니다','contents','상태 필터를 적용하면 결과는 줄어들지만 페이지 수는 필터 적용 전과 동일합니다. 필터 조건을 전체 개수에도 반영해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_46') WHERE id=47 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','상태 필터 적용 후 페이지 수가 잘못 표시됩니다','contents','상태 필터를 적용하면 결과는 줄어들지만 페이지 수는 필터 적용 전과 동일합니다. 필터 조건을 전체 개수에도 반영해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_46') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_46');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','검색어를 지워도 이전 결과가 남아 있습니다','contents','검색 입력란을 비운 뒤에도 이전 검색 결과가 계속 표시됩니다. 검색어가 빈 값이면 전체 목록을 다시 조회해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_47') WHERE id=48 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','검색어를 지워도 이전 결과가 남아 있습니다','contents','검색 입력란을 비운 뒤에도 이전 검색 결과가 계속 표시됩니다. 검색어가 빈 값이면 전체 목록을 다시 조회해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_47') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_47');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','제목이 긴 문의 때문에 목록 레이아웃이 깨집니다','contents','제목을 길게 입력한 문의가 목록에 표시되면 다른 열과 겹칩니다. 긴 제목은 말줄임 처리하고 상세 화면에서 전체를 보여 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_48') WHERE id=49 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','제목이 긴 문의 때문에 목록 레이아웃이 깨집니다','contents','제목을 길게 입력한 문의가 목록에 표시되면 다른 열과 겹칩니다. 긴 제목은 말줄임 처리하고 상세 화면에서 전체를 보여 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_48') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_48');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','다크 모드에서 문의 내용이 잘 보이지 않습니다','contents','다크 모드로 전환하면 상세 화면 본문과 댓글의 글자색이 배경과 비슷해 읽기 어렵습니다. 대비를 높여 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_49') WHERE id=50 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','다크 모드에서 문의 내용이 잘 보이지 않습니다','contents','다크 모드로 전환하면 상세 화면 본문과 댓글의 글자색이 배경과 비슷해 읽기 어렵습니다. 대비를 높여 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_49') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_49');
|
||||
UPDATE feedbacks SET data=JSON_OBJECT('title','저장 버튼을 빠르게 누르면 문의가 중복 등록됩니다','contents','저장 버튼을 빠르게 두 번 누르면 같은 내용의 문의가 두 건 등록될 수 있습니다. 요청 중에는 버튼을 비활성화해 주세요.'), additional_data=JSON_OBJECT('seed_key','DUMMY_QA_20260731_50') WHERE id=51 AND channel_id=1;
|
||||
INSERT INTO feedbacks (channel_id,data,additional_data) SELECT 1,JSON_OBJECT('title','저장 버튼을 빠르게 누르면 문의가 중복 등록됩니다','contents','저장 버튼을 빠르게 두 번 누르면 같은 내용의 문의가 두 건 등록될 수 있습니다. 요청 중에는 버튼을 비활성화해 주세요.'),JSON_OBJECT('seed_key','DUMMY_QA_20260731_50') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM feedbacks WHERE JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key'))='DUMMY_QA_20260731_50');
|
||||
COMMIT;
|
||||
|
||||
-- ================================================================
|
||||
-- 2) Run against the Secretary baron_support database
|
||||
-- ================================================================
|
||||
START TRANSACTION;
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','로그인 후 문의 등록 화면이 비어 있습니다','BARON-SSO 로그인은 정상적으로 완료되었지만 문의 등록 화면에 입력 폼이 표시되지 않습니다. 새로고침과 시크릿 창에서도 동일합니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','로그인 후 문의 등록 화면이 비어 있습니다','description','BARON-SSO 로그인은 정상적으로 완료되었지만 문의 등록 화면에 입력 폼이 표시되지 않습니다. 새로고침과 시크릿 창에서도 동일합니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_01') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='로그인 후 문의 등록 화면이 비어 있습니다');
|
||||
SET @dummy_ticket_id_01:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='로그인 후 문의 등록 화면이 비어 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_01,10,'1','2','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='2');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','SSO 인증 후 다시 로그인 화면으로 돌아옵니다','SSO 인증을 완료하면 잠시 로딩된 뒤 다시 로그인 화면으로 이동합니다. 같은 계정으로 여러 번 시도해도 문의 작성 화면에 진입할 수 없습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','SSO 인증 후 다시 로그인 화면으로 돌아옵니다','description','SSO 인증을 완료하면 잠시 로딩된 뒤 다시 로그인 화면으로 이동합니다. 같은 계정으로 여러 번 시도해도 문의 작성 화면에 진입할 수 없습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_02') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='SSO 인증 후 다시 로그인 화면으로 돌아옵니다');
|
||||
SET @dummy_ticket_id_02:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='SSO 인증 후 다시 로그인 화면으로 돌아옵니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_02,10,'1','3','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='3');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','모바일에서 제목 입력란이 화면 밖으로 밀립니다','휴대전화에서 문의를 작성할 때 제목 입력란 오른쪽이 잘립니다. 가로 스크롤 없이 전체 입력란을 사용할 수 있도록 조정해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','모바일에서 제목 입력란이 화면 밖으로 밀립니다','description','휴대전화에서 문의를 작성할 때 제목 입력란 오른쪽이 잘립니다. 가로 스크롤 없이 전체 입력란을 사용할 수 있도록 조정해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_03') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='모바일에서 제목 입력란이 화면 밖으로 밀립니다');
|
||||
SET @dummy_ticket_id_03:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='모바일에서 제목 입력란이 화면 밖으로 밀립니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_03,10,'1','4','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='4');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','첨부파일 업로드가 중간에 멈춥니다','약 12MB 크기의 JPG 파일을 첨부하면 업로드 진행률이 80퍼센트에서 멈춥니다. PC와 모바일에서 모두 같은 현상이 발생합니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','첨부파일 업로드가 중간에 멈춥니다','description','약 12MB 크기의 JPG 파일을 첨부하면 업로드 진행률이 80퍼센트에서 멈춥니다. PC와 모바일에서 모두 같은 현상이 발생합니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_04') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='첨부파일 업로드가 중간에 멈춥니다');
|
||||
SET @dummy_ticket_id_04:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='첨부파일 업로드가 중간에 멈춥니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_04,10,'1','5','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='5');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','여러 파일을 한 번에 첨부하고 싶습니다','현재는 파일을 하나씩 선택해야 해서 여러 자료를 첨부할 때 번거롭습니다. 여러 파일을 동시에 선택할 수 있으면 좋겠습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','여러 파일을 한 번에 첨부하고 싶습니다','description','현재는 파일을 하나씩 선택해야 해서 여러 자료를 첨부할 때 번거롭습니다. 여러 파일을 동시에 선택할 수 있으면 좋겠습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_05') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='여러 파일을 한 번에 첨부하고 싶습니다');
|
||||
SET @dummy_ticket_id_05:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='여러 파일을 한 번에 첨부하고 싶습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_05,10,'1','6','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='6');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 저장 버튼을 눌러도 반응이 없습니다','제목과 내용을 입력한 뒤 저장 버튼을 눌렀지만 아무 메시지도 표시되지 않고 목록으로 이동하지 않습니다. 콘솔에는 요청 실패 로그가 남습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 저장 버튼을 눌러도 반응이 없습니다','description','제목과 내용을 입력한 뒤 저장 버튼을 눌렀지만 아무 메시지도 표시되지 않고 목록으로 이동하지 않습니다. 콘솔에는 요청 실패 로그가 남습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_06') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 저장 버튼을 눌러도 반응이 없습니다');
|
||||
SET @dummy_ticket_id_06:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 저장 버튼을 눌러도 반응이 없습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_06,10,'1','7','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='7');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','작성 중인 문의가 새로고침 후 사라집니다','긴 내용을 작성하다가 실수로 새로고침했더니 입력한 내용이 모두 사라졌습니다. 임시 저장이나 페이지 이탈 확인 기능이 있으면 좋겠습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','작성 중인 문의가 새로고침 후 사라집니다','description','긴 내용을 작성하다가 실수로 새로고침했더니 입력한 내용이 모두 사라졌습니다. 임시 저장이나 페이지 이탈 확인 기능이 있으면 좋겠습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_07') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='작성 중인 문의가 새로고침 후 사라집니다');
|
||||
SET @dummy_ticket_id_07:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='작성 중인 문의가 새로고침 후 사라집니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_07,10,'1','8','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='8');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 목록에서 최신 글이 먼저 보이지 않습니다','방금 등록한 문의가 목록 마지막 부분에 표시됩니다. 최근에 작성한 문의가 가장 위에 보이도록 기본 정렬을 최신순으로 바꿔 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 목록에서 최신 글이 먼저 보이지 않습니다','description','방금 등록한 문의가 목록 마지막 부분에 표시됩니다. 최근에 작성한 문의가 가장 위에 보이도록 기본 정렬을 최신순으로 바꿔 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_08') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 목록에서 최신 글이 먼저 보이지 않습니다');
|
||||
SET @dummy_ticket_id_08:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 목록에서 최신 글이 먼저 보이지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_08,10,'1','9','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='9');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 목록 페이지 이동이 정상적으로 되지 않습니다','문의가 여러 페이지로 나뉜 상태에서 다음 페이지를 눌러도 같은 목록이 반복됩니다. 페이지 번호를 직접 눌러도 결과가 바뀌지 않습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 목록 페이지 이동이 정상적으로 되지 않습니다','description','문의가 여러 페이지로 나뉜 상태에서 다음 페이지를 눌러도 같은 목록이 반복됩니다. 페이지 번호를 직접 눌러도 결과가 바뀌지 않습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_09') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 목록 페이지 이동이 정상적으로 되지 않습니다');
|
||||
SET @dummy_ticket_id_09:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 목록 페이지 이동이 정상적으로 되지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_09,10,'1','10','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='10');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 제목으로 검색하면 결과가 누락됩니다','목록에 존재하는 제목의 일부 단어로 검색했는데 결과가 표시되지 않습니다. 한글과 영문을 섞어 검색하는 경우도 확인 부탁드립니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 제목으로 검색하면 결과가 누락됩니다','description','목록에 존재하는 제목의 일부 단어로 검색했는데 결과가 표시되지 않습니다. 한글과 영문을 섞어 검색하는 경우도 확인 부탁드립니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_10') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 제목으로 검색하면 결과가 누락됩니다');
|
||||
SET @dummy_ticket_id_10:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 제목으로 검색하면 결과가 누락됩니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_10,10,'1','11','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='11');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','특수문자가 포함된 제목이 깨져 보입니다','제목에 괄호와 앰퍼샌드를 입력해 저장했더니 상세 화면에서 문자가 깨져 보입니다. 입력한 그대로 표시되면 좋겠습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','특수문자가 포함된 제목이 깨져 보입니다','description','제목에 괄호와 앰퍼샌드를 입력해 저장했더니 상세 화면에서 문자가 깨져 보입니다. 입력한 그대로 표시되면 좋겠습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_11') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='특수문자가 포함된 제목이 깨져 보입니다');
|
||||
SET @dummy_ticket_id_11:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='특수문자가 포함된 제목이 깨져 보입니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_11,10,'1','12','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='12');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','긴 문의 내용의 줄바꿈이 사라집니다','여러 문단으로 입력한 내용이 저장 후 한 줄로 붙어 표시됩니다. 작성할 때의 줄바꿈과 문단 간격이 유지되면 좋겠습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','긴 문의 내용의 줄바꿈이 사라집니다','description','여러 문단으로 입력한 내용이 저장 후 한 줄로 붙어 표시됩니다. 작성할 때의 줄바꿈과 문단 간격이 유지되면 좋겠습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_12') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='긴 문의 내용의 줄바꿈이 사라집니다');
|
||||
SET @dummy_ticket_id_12:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='긴 문의 내용의 줄바꿈이 사라집니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_12,10,'1','13','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='13');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 상세 화면에서 첨부파일을 내려받을 수 없습니다','상세 화면에 파일명은 표시되지만 파일명을 클릭해도 다운로드가 시작되지 않습니다. Chrome과 Edge에서 모두 확인했습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 상세 화면에서 첨부파일을 내려받을 수 없습니다','description','상세 화면에 파일명은 표시되지만 파일명을 클릭해도 다운로드가 시작되지 않습니다. Chrome과 Edge에서 모두 확인했습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_13') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 상세 화면에서 첨부파일을 내려받을 수 없습니다');
|
||||
SET @dummy_ticket_id_13:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 상세 화면에서 첨부파일을 내려받을 수 없습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_13,10,'1','14','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='14');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','첨부파일 삭제 후에도 목록에 남아 있습니다','문의 작성 중 첨부파일을 삭제했지만 저장 후 상세 화면을 다시 열면 삭제한 파일이 그대로 표시됩니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','첨부파일 삭제 후에도 목록에 남아 있습니다','description','문의 작성 중 첨부파일을 삭제했지만 저장 후 상세 화면을 다시 열면 삭제한 파일이 그대로 표시됩니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_14') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='첨부파일 삭제 후에도 목록에 남아 있습니다');
|
||||
SET @dummy_ticket_id_14:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='첨부파일 삭제 후에도 목록에 남아 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_14,10,'1','15','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='15');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','답변 등록 후 목록 상태가 바로 바뀌지 않습니다','관리자가 답변을 등록한 뒤 목록으로 돌아왔지만 상태가 이전 상태로 남아 있습니다. 새로고침해야 변경된 상태가 표시됩니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','답변 등록 후 목록 상태가 바로 바뀌지 않습니다','description','관리자가 답변을 등록한 뒤 목록으로 돌아왔지만 상태가 이전 상태로 남아 있습니다. 새로고침해야 변경된 상태가 표시됩니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_15') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='답변 등록 후 목록 상태가 바로 바뀌지 않습니다');
|
||||
SET @dummy_ticket_id_15:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='답변 등록 후 목록 상태가 바로 바뀌지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_15,10,'1','16','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='16');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','댓글 작성 후 댓글 수가 갱신되지 않습니다','상세 화면에서 댓글을 작성하면 내용은 보이지만 댓글 개수가 즉시 변경되지 않습니다. 작성 완료 후 개수도 갱신해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','댓글 작성 후 댓글 수가 갱신되지 않습니다','description','상세 화면에서 댓글을 작성하면 내용은 보이지만 댓글 개수가 즉시 변경되지 않습니다. 작성 완료 후 개수도 갱신해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_16') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='댓글 작성 후 댓글 수가 갱신되지 않습니다');
|
||||
SET @dummy_ticket_id_16:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='댓글 작성 후 댓글 수가 갱신되지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_16,10,'1','17','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='17');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','댓글을 수정하면 수정 시간이 표시되지 않습니다','댓글 내용을 수정한 뒤 수정 표시가 남지 않고 원래 작성 시간만 보입니다. 수정된 댓글임을 알 수 있도록 표시해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','댓글을 수정하면 수정 시간이 표시되지 않습니다','description','댓글 내용을 수정한 뒤 수정 표시가 남지 않고 원래 작성 시간만 보입니다. 수정된 댓글임을 알 수 있도록 표시해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_17') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='댓글을 수정하면 수정 시간이 표시되지 않습니다');
|
||||
SET @dummy_ticket_id_17:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='댓글을 수정하면 수정 시간이 표시되지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_17,10,'1','18','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='18');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','댓글 삭제 확인 창의 버튼 문구가 헷갈립니다','댓글 삭제를 누르면 확인 창의 취소와 삭제 버튼 구분이 어렵습니다. 삭제 작업임을 명확히 알 수 있도록 개선해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','댓글 삭제 확인 창의 버튼 문구가 헷갈립니다','description','댓글 삭제를 누르면 확인 창의 취소와 삭제 버튼 구분이 어렵습니다. 삭제 작업임을 명확히 알 수 있도록 개선해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_18') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='댓글 삭제 확인 창의 버튼 문구가 헷갈립니다');
|
||||
SET @dummy_ticket_id_18:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='댓글 삭제 확인 창의 버튼 문구가 헷갈립니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_18,10,'1','19','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='19');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','댓글에 여러 줄의 내용을 입력할 수 없습니다','댓글 입력란이 한 줄 입력으로만 동작해서 긴 설명을 작성하기 어렵습니다. 여러 줄을 입력할 수 있으면 좋겠습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','댓글에 여러 줄의 내용을 입력할 수 없습니다','description','댓글 입력란이 한 줄 입력으로만 동작해서 긴 설명을 작성하기 어렵습니다. 여러 줄을 입력할 수 있으면 좋겠습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_19') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='댓글에 여러 줄의 내용을 입력할 수 없습니다');
|
||||
SET @dummy_ticket_id_19:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='댓글에 여러 줄의 내용을 입력할 수 없습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_19,10,'1','20','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='20');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 상세 화면의 버튼 위치가 일정하지 않습니다','문의마다 수정, 삭제, 목록 버튼 위치가 다르게 보입니다. 댓글 영역과 겹치지 않도록 상세 화면 상단에 배치해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 상세 화면의 버튼 위치가 일정하지 않습니다','description','문의마다 수정, 삭제, 목록 버튼 위치가 다르게 보입니다. 댓글 영역과 겹치지 않도록 상세 화면 상단에 배치해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_20') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 상세 화면의 버튼 위치가 일정하지 않습니다');
|
||||
SET @dummy_ticket_id_20:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 상세 화면의 버튼 위치가 일정하지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_20,10,'1','21','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='21');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','수정한 문의 내용이 저장 후 이전 내용으로 돌아갑니다','상세 화면에서 제목과 내용을 수정하고 저장했지만 다시 조회하면 수정 전 내용이 표시됩니다. 저장 API와 DB 반영을 확인해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','수정한 문의 내용이 저장 후 이전 내용으로 돌아갑니다','description','상세 화면에서 제목과 내용을 수정하고 저장했지만 다시 조회하면 수정 전 내용이 표시됩니다. 저장 API와 DB 반영을 확인해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_21') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='수정한 문의 내용이 저장 후 이전 내용으로 돌아갑니다');
|
||||
SET @dummy_ticket_id_21:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='수정한 문의 내용이 저장 후 이전 내용으로 돌아갑니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_21,10,'1','22','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='22');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 삭제 후 목록에 삭제된 글이 남아 있습니다','삭제 성공 메시지는 표시되지만 목록으로 돌아오면 삭제한 문의가 계속 보입니다. 새로고침해야 사라집니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 삭제 후 목록에 삭제된 글이 남아 있습니다','description','삭제 성공 메시지는 표시되지만 목록으로 돌아오면 삭제한 문의가 계속 보입니다. 새로고침해야 사라집니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_22') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 삭제 후 목록에 삭제된 글이 남아 있습니다');
|
||||
SET @dummy_ticket_id_22:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 삭제 후 목록에 삭제된 글이 남아 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_22,10,'1','23','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='23');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','삭제한 문의의 상세 URL에 접근할 수 있습니다','문의 삭제 후 브라우저 뒤로 가기로 상세 URL에 다시 접근하면 내용이 표시됩니다. 삭제된 문의는 조회되지 않도록 처리해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','삭제한 문의의 상세 URL에 접근할 수 있습니다','description','문의 삭제 후 브라우저 뒤로 가기로 상세 URL에 다시 접근하면 내용이 표시됩니다. 삭제된 문의는 조회되지 않도록 처리해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_23') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='삭제한 문의의 상세 URL에 접근할 수 있습니다');
|
||||
SET @dummy_ticket_id_23:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='삭제한 문의의 상세 URL에 접근할 수 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_23,10,'1','24','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='24');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','관리자와 일반 사용자의 메뉴가 동일하게 보입니다','일반 사용자로 로그인했는데 관리자 설정 메뉴가 잠시 표시됩니다. 권한에 따라 메뉴와 화면을 일관되게 구분해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','관리자와 일반 사용자의 메뉴가 동일하게 보입니다','description','일반 사용자로 로그인했는데 관리자 설정 메뉴가 잠시 표시됩니다. 권한에 따라 메뉴와 화면을 일관되게 구분해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_24') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='관리자와 일반 사용자의 메뉴가 동일하게 보입니다');
|
||||
SET @dummy_ticket_id_24:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='관리자와 일반 사용자의 메뉴가 동일하게 보입니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_24,10,'1','25','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='25');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','프로젝트를 전환하면 이전 프로젝트 문의가 보입니다','프로젝트 선택기로 다른 프로젝트로 이동했는데 잠시 이전 프로젝트 문의가 표시됩니다. 프로젝트 전환 시 목록을 초기화해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','프로젝트를 전환하면 이전 프로젝트 문의가 보입니다','description','프로젝트 선택기로 다른 프로젝트로 이동했는데 잠시 이전 프로젝트 문의가 표시됩니다. 프로젝트 전환 시 목록을 초기화해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_25') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='프로젝트를 전환하면 이전 프로젝트 문의가 보입니다');
|
||||
SET @dummy_ticket_id_25:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='프로젝트를 전환하면 이전 프로젝트 문의가 보입니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_25,10,'1','26','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='26');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','Q&A 채널 변경 후 문의 양식이 갱신되지 않습니다','다른 채널을 선택했지만 이전 채널의 문의 양식이 계속 표시됩니다. 채널 변경 시 해당 폼 템플릿을 다시 불러와야 합니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','Q&A 채널 변경 후 문의 양식이 갱신되지 않습니다','description','다른 채널을 선택했지만 이전 채널의 문의 양식이 계속 표시됩니다. 채널 변경 시 해당 폼 템플릿을 다시 불러와야 합니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_26') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='Q&A 채널 변경 후 문의 양식이 갱신되지 않습니다');
|
||||
SET @dummy_ticket_id_26:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='Q&A 채널 변경 후 문의 양식이 갱신되지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_26,10,'1','27','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='27');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','폼 템플릿의 필수 표시와 실제 검증이 다릅니다','화면에서는 선택 항목처럼 보이는 필드가 저장 시 필수 입력 오류를 반환합니다. 화면과 서버 검증 규칙을 맞춰 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','폼 템플릿의 필수 표시와 실제 검증이 다릅니다','description','화면에서는 선택 항목처럼 보이는 필드가 저장 시 필수 입력 오류를 반환합니다. 화면과 서버 검증 규칙을 맞춰 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_27') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='폼 템플릿의 필수 표시와 실제 검증이 다릅니다');
|
||||
SET @dummy_ticket_id_27:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='폼 템플릿의 필수 표시와 실제 검증이 다릅니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_27,10,'1','28','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='28');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 등록 시 공백만 입력해도 저장됩니다','내용 입력란에 공백만 입력하고 저장했는데 문의가 등록됩니다. 공백만 있는 제목과 내용은 저장되지 않아야 합니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 등록 시 공백만 입력해도 저장됩니다','description','내용 입력란에 공백만 입력하고 저장했는데 문의가 등록됩니다. 공백만 있는 제목과 내용은 저장되지 않아야 합니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_28') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 등록 시 공백만 입력해도 저장됩니다');
|
||||
SET @dummy_ticket_id_28:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 등록 시 공백만 입력해도 저장됩니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_28,10,'1','29','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='29');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 등록 시간이 실제보다 9시간 빠릅니다','등록 시간과 수정 시간이 실제보다 9시간 빠르게 표시됩니다. 스테이징 화면의 시간대가 한국 기준인지 확인 부탁드립니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 등록 시간이 실제보다 9시간 빠릅니다','description','등록 시간과 수정 시간이 실제보다 9시간 빠르게 표시됩니다. 스테이징 화면의 시간대가 한국 기준인지 확인 부탁드립니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_29') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 등록 시간이 실제보다 9시간 빠릅니다');
|
||||
SET @dummy_ticket_id_29:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 등록 시간이 실제보다 9시간 빠릅니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_29,10,'1','30','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='30');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','새로고침하면 로그인 세션이 만료된 것으로 표시됩니다','로그인 직후에는 정상적으로 문의를 볼 수 있지만 새로고침하면 유효하지 않은 로그인 세션이라는 메시지가 표시됩니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','새로고침하면 로그인 세션이 만료된 것으로 표시됩니다','description','로그인 직후에는 정상적으로 문의를 볼 수 있지만 새로고침하면 유효하지 않은 로그인 세션이라는 메시지가 표시됩니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_30') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='새로고침하면 로그인 세션이 만료된 것으로 표시됩니다');
|
||||
SET @dummy_ticket_id_30:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='새로고침하면 로그인 세션이 만료된 것으로 표시됩니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_30,10,'1','31','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='31');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','액세스 토큰 만료 후 자동 갱신이 동작하지 않습니다','페이지를 오래 열어 둔 뒤 목록을 조회하면 401 오류가 발생하고 로그인 화면으로 이동합니다. refresh token으로 재시도되면 좋겠습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','액세스 토큰 만료 후 자동 갱신이 동작하지 않습니다','description','페이지를 오래 열어 둔 뒤 목록을 조회하면 401 오류가 발생하고 로그인 화면으로 이동합니다. refresh token으로 재시도되면 좋겠습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_31') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='액세스 토큰 만료 후 자동 갱신이 동작하지 않습니다');
|
||||
SET @dummy_ticket_id_31:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='액세스 토큰 만료 후 자동 갱신이 동작하지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_31,10,'1','32','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='32');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','로그아웃 후 뒤로 가기로 이전 화면이 보입니다','로그아웃한 뒤 브라우저 뒤로 가기를 누르면 이전 문의 화면의 내용이 잠시 표시됩니다. 보호된 페이지가 캐시되지 않도록 해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','로그아웃 후 뒤로 가기로 이전 화면이 보입니다','description','로그아웃한 뒤 브라우저 뒤로 가기를 누르면 이전 문의 화면의 내용이 잠시 표시됩니다. 보호된 페이지가 캐시되지 않도록 해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_32') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='로그아웃 후 뒤로 가기로 이전 화면이 보입니다');
|
||||
SET @dummy_ticket_id_32:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='로그아웃 후 뒤로 가기로 이전 화면이 보입니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_32,10,'1','33','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='33');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','BARON-SSO 로그아웃 후 오류 페이지로 이동합니다','로그아웃 버튼을 누르면 앱 로그인 화면이 아니라 SSO invalid_request 오류 페이지로 이동합니다. 로컬 세션 삭제 후 SSO 로그인 버튼 화면으로 돌아오면 좋겠습니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','BARON-SSO 로그아웃 후 오류 페이지로 이동합니다','description','로그아웃 버튼을 누르면 앱 로그인 화면이 아니라 SSO invalid_request 오류 페이지로 이동합니다. 로컬 세션 삭제 후 SSO 로그인 버튼 화면으로 돌아오면 좋겠습니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_33') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='BARON-SSO 로그아웃 후 오류 페이지로 이동합니다');
|
||||
SET @dummy_ticket_id_33:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='BARON-SSO 로그아웃 후 오류 페이지로 이동합니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_33,10,'1','34','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='34');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','SSO 로그인 버튼이 첫 화면에 표시되지 않습니다','테넌트에서 OAuth를 사용하도록 설정했는데 로그인 화면에 이메일 로그인만 표시됩니다. 설정 조회 시점을 확인해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','SSO 로그인 버튼이 첫 화면에 표시되지 않습니다','description','테넌트에서 OAuth를 사용하도록 설정했는데 로그인 화면에 이메일 로그인만 표시됩니다. 설정 조회 시점을 확인해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_34') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='SSO 로그인 버튼이 첫 화면에 표시되지 않습니다');
|
||||
SET @dummy_ticket_id_34:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='SSO 로그인 버튼이 첫 화면에 표시되지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_34,10,'1','35','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='35');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','로그인한 사용자의 이름이 댓글에 표시되지 않습니다','로그인한 계정으로 댓글을 작성했지만 작성자 이름이 빈 값으로 표시됩니다. SSO 프로필 이름이나 이메일을 표시해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','로그인한 사용자의 이름이 댓글에 표시되지 않습니다','description','로그인한 계정으로 댓글을 작성했지만 작성자 이름이 빈 값으로 표시됩니다. SSO 프로필 이름이나 이메일을 표시해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_35') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='로그인한 사용자의 이름이 댓글에 표시되지 않습니다');
|
||||
SET @dummy_ticket_id_35:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='로그인한 사용자의 이름이 댓글에 표시되지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_35,10,'1','36','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='36');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','다른 사용자가 작성한 문의를 수정할 수 있습니다','일반 사용자가 다른 사용자의 문의 상세 URL을 직접 입력하면 수정 화면에 접근할 수 있습니다. 작성자 본인과 관리자만 수정할 수 있어야 합니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','다른 사용자가 작성한 문의를 수정할 수 있습니다','description','일반 사용자가 다른 사용자의 문의 상세 URL을 직접 입력하면 수정 화면에 접근할 수 있습니다. 작성자 본인과 관리자만 수정할 수 있어야 합니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_36') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='다른 사용자가 작성한 문의를 수정할 수 있습니다');
|
||||
SET @dummy_ticket_id_36:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='다른 사용자가 작성한 문의를 수정할 수 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_36,10,'1','37','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='37');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','일반 사용자가 문의 목록 전체를 볼 수 있습니다','일반 사용자 계정으로 로그인했을 때 다른 사용자의 문의까지 표시됩니다. END_USER는 본인 문의만 조회할 수 있어야 하는지 확인해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','일반 사용자가 문의 목록 전체를 볼 수 있습니다','description','일반 사용자 계정으로 로그인했을 때 다른 사용자의 문의까지 표시됩니다. END_USER는 본인 문의만 조회할 수 있어야 하는지 확인해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_37') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='일반 사용자가 문의 목록 전체를 볼 수 있습니다');
|
||||
SET @dummy_ticket_id_37:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='일반 사용자가 문의 목록 전체를 볼 수 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_37,10,'1','38','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='38');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','프로젝트 관리자의 문의 목록이 비어 있습니다','프로젝트 관리자 권한을 받았지만 해당 프로젝트의 문의 목록이 표시되지 않습니다. members와 workspace access 매핑을 확인해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','프로젝트 관리자의 문의 목록이 비어 있습니다','description','프로젝트 관리자 권한을 받았지만 해당 프로젝트의 문의 목록이 표시되지 않습니다. members와 workspace access 매핑을 확인해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_38') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='프로젝트 관리자의 문의 목록이 비어 있습니다');
|
||||
SET @dummy_ticket_id_38:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='프로젝트 관리자의 문의 목록이 비어 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_38,10,'1','39','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='39');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','피드백 등록 후 관리자 목록에 바로 보이지 않습니다','사용자가 문의를 등록한 뒤 관리자가 피드백 목록을 확인했지만 새 글이 즉시 표시되지 않습니다. 내부 티켓과 ABC 동기화를 확인해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','피드백 등록 후 관리자 목록에 바로 보이지 않습니다','description','사용자가 문의를 등록한 뒤 관리자가 피드백 목록을 확인했지만 새 글이 즉시 표시되지 않습니다. 내부 티켓과 ABC 동기화를 확인해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_39') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='피드백 등록 후 관리자 목록에 바로 보이지 않습니다');
|
||||
SET @dummy_ticket_id_39:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='피드백 등록 후 관리자 목록에 바로 보이지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_39,10,'1','40','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='40');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','ABC 피드백과 내부 티켓의 제목이 다릅니다','문의 등록 후 관리자 화면과 지원 화면에서 제목이 서로 다르게 표시됩니다. 두 DB에 동일한 제목이 저장되는지 확인해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','ABC 피드백과 내부 티켓의 제목이 다릅니다','description','문의 등록 후 관리자 화면과 지원 화면에서 제목이 서로 다르게 표시됩니다. 두 DB에 동일한 제목이 저장되는지 확인해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_40') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='ABC 피드백과 내부 티켓의 제목이 다릅니다');
|
||||
SET @dummy_ticket_id_40:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='ABC 피드백과 내부 티켓의 제목이 다릅니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_40,10,'1','41','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='41');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','피드백 상세 조회 시 502 오류가 발생합니다','목록에서는 문의가 보이지만 특정 글의 상세 화면을 열면 502 Bad Gateway가 표시됩니다. 외부 피드백 매핑 ID를 확인해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','피드백 상세 조회 시 502 오류가 발생합니다','description','목록에서는 문의가 보이지만 특정 글의 상세 화면을 열면 502 Bad Gateway가 표시됩니다. 외부 피드백 매핑 ID를 확인해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_41') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='피드백 상세 조회 시 502 오류가 발생합니다');
|
||||
SET @dummy_ticket_id_41:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='피드백 상세 조회 시 502 오류가 발생합니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_41,10,'1','42','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='42');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','피드백 삭제 후 내부 티켓이 남아 있습니다','관리자 화면에서 피드백을 삭제했지만 지원 화면에는 동일한 문의가 남아 있습니다. ABC 삭제와 내부 티켓 상태 변경을 함께 처리해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','피드백 삭제 후 내부 티켓이 남아 있습니다','description','관리자 화면에서 피드백을 삭제했지만 지원 화면에는 동일한 문의가 남아 있습니다. ABC 삭제와 내부 티켓 상태 변경을 함께 처리해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_42') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='피드백 삭제 후 내부 티켓이 남아 있습니다');
|
||||
SET @dummy_ticket_id_42:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='피드백 삭제 후 내부 티켓이 남아 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_42,10,'1','43','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='43');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 내용에 URL을 입력하면 저장에 실패합니다','내용에 https URL과 쿼리 파라미터를 포함하면 저장 요청이 400 오류로 실패합니다. URL이 포함된 본문도 저장되어야 합니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 내용에 URL을 입력하면 저장에 실패합니다','description','내용에 https URL과 쿼리 파라미터를 포함하면 저장 요청이 400 오류로 실패합니다. URL이 포함된 본문도 저장되어야 합니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_43') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 내용에 URL을 입력하면 저장에 실패합니다');
|
||||
SET @dummy_ticket_id_43:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 내용에 URL을 입력하면 저장에 실패합니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_43,10,'1','44','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='44');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','브라우저를 바꾸면 작성한 문의가 보이지 않습니다','같은 계정으로 Chrome에서 작성한 문의가 Edge에서는 표시되지 않습니다. 로그인 계정과 테넌트 기준 조회를 확인해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','브라우저를 바꾸면 작성한 문의가 보이지 않습니다','description','같은 계정으로 Chrome에서 작성한 문의가 Edge에서는 표시되지 않습니다. 로그인 계정과 테넌트 기준 조회를 확인해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_44') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='브라우저를 바꾸면 작성한 문의가 보이지 않습니다');
|
||||
SET @dummy_ticket_id_44:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='브라우저를 바꾸면 작성한 문의가 보이지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_44,10,'1','45','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='45');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','문의 목록의 필터를 초기화할 수 없습니다','상태 필터를 적용한 뒤 초기화 버튼을 눌러도 이전 필터가 유지됩니다. 초기화하면 전체 목록으로 돌아가야 합니다.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','문의 목록의 필터를 초기화할 수 없습니다','description','상태 필터를 적용한 뒤 초기화 버튼을 눌러도 이전 필터가 유지됩니다. 초기화하면 전체 목록으로 돌아가야 합니다.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_45') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='문의 목록의 필터를 초기화할 수 없습니다');
|
||||
SET @dummy_ticket_id_45:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='문의 목록의 필터를 초기화할 수 없습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_45,10,'1','46','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='46');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','상태 필터 적용 후 페이지 수가 잘못 표시됩니다','상태 필터를 적용하면 결과는 줄어들지만 페이지 수는 필터 적용 전과 동일합니다. 필터 조건을 전체 개수에도 반영해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','상태 필터 적용 후 페이지 수가 잘못 표시됩니다','description','상태 필터를 적용하면 결과는 줄어들지만 페이지 수는 필터 적용 전과 동일합니다. 필터 조건을 전체 개수에도 반영해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_46') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='상태 필터 적용 후 페이지 수가 잘못 표시됩니다');
|
||||
SET @dummy_ticket_id_46:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='상태 필터 적용 후 페이지 수가 잘못 표시됩니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_46,10,'1','47','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='47');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','검색어를 지워도 이전 결과가 남아 있습니다','검색 입력란을 비운 뒤에도 이전 검색 결과가 계속 표시됩니다. 검색어가 빈 값이면 전체 목록을 다시 조회해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','검색어를 지워도 이전 결과가 남아 있습니다','description','검색 입력란을 비운 뒤에도 이전 검색 결과가 계속 표시됩니다. 검색어가 빈 값이면 전체 목록을 다시 조회해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_47') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='검색어를 지워도 이전 결과가 남아 있습니다');
|
||||
SET @dummy_ticket_id_47:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='검색어를 지워도 이전 결과가 남아 있습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_47,10,'1','48','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='48');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','제목이 긴 문의 때문에 목록 레이아웃이 깨집니다','제목을 길게 입력한 문의가 목록에 표시되면 다른 열과 겹칩니다. 긴 제목은 말줄임 처리하고 상세 화면에서 전체를 보여 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','제목이 긴 문의 때문에 목록 레이아웃이 깨집니다','description','제목을 길게 입력한 문의가 목록에 표시되면 다른 열과 겹칩니다. 긴 제목은 말줄임 처리하고 상세 화면에서 전체를 보여 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_48') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='제목이 긴 문의 때문에 목록 레이아웃이 깨집니다');
|
||||
SET @dummy_ticket_id_48:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='제목이 긴 문의 때문에 목록 레이아웃이 깨집니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_48,10,'1','49','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='49');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','다크 모드에서 문의 내용이 잘 보이지 않습니다','다크 모드로 전환하면 상세 화면 본문과 댓글의 글자색이 배경과 비슷해 읽기 어렵습니다. 대비를 높여 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','다크 모드에서 문의 내용이 잘 보이지 않습니다','description','다크 모드로 전환하면 상세 화면 본문과 댓글의 글자색이 배경과 비슷해 읽기 어렵습니다. 대비를 높여 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_49') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='다크 모드에서 문의 내용이 잘 보이지 않습니다');
|
||||
SET @dummy_ticket_id_49:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='다크 모드에서 문의 내용이 잘 보이지 않습니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_49,10,'1','50','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='50');
|
||||
INSERT INTO support_tickets (workspace_id,requester_id,requester_tenant_id,requester_contact,ticket_type,source_system,title,description,category_code,status_code,approval_status,sync_status,issue_link_status,is_secret,requires_approval,priority,extra_fields) SELECT 10,'09b74623-d323-4d86-9a0f-18e47e3ac12c','539f598d-e6f1-4fe2-be48-466448d8d803','wgjoo@brsw.kr','GENERAL','ABC','저장 버튼을 빠르게 누르면 문의가 중복 등록됩니다','저장 버튼을 빠르게 두 번 누르면 같은 내용의 문의가 두 건 등록될 수 있습니다. 요청 중에는 버튼을 비활성화해 주세요.','GENERAL_QNA','RECEIVED','NOT_REQUIRED','SYNCED','NOT_REQUIRED',0,0,'NORMAL',JSON_OBJECT('title','저장 버튼을 빠르게 누르면 문의가 중복 등록됩니다','description','저장 버튼을 빠르게 두 번 누르면 같은 내용의 문의가 두 건 등록될 수 있습니다. 요청 중에는 버튼을 비활성화해 주세요.','environment','','error_message','','expected_result','','requester_contact','wgjoo@brsw.kr','seed_key','DUMMY_QA_20260731_50') FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM support_tickets WHERE workspace_id=10 AND title='저장 버튼을 빠르게 누르면 문의가 중복 등록됩니다');
|
||||
SET @dummy_ticket_id_50:=(SELECT id FROM support_tickets WHERE workspace_id=10 AND title='저장 버튼을 빠르게 누르면 문의가 중복 등록됩니다' ORDER BY id DESC LIMIT 1);
|
||||
INSERT INTO abc_feedback_mappings (ticket_id,workspace_id,abc_channel_id,abc_feedback_id,abc_feedback_url,sync_status) SELECT @dummy_ticket_id_50,10,'1','51','/main/project/1/feedback?channelId=1','SYNCED' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM abc_feedback_mappings WHERE abc_feedback_id='51');
|
||||
COMMIT;
|
||||
|
||||
-- Verification:
|
||||
-- SELECT COUNT(*) FROM feedbacks WHERE channel_id=1 AND JSON_UNQUOTE(JSON_EXTRACT(additional_data,'$.seed_key')) LIKE 'DUMMY_QA_20260731_%';
|
||||
-- SELECT COUNT(*) FROM support_tickets WHERE workspace_id=10 AND JSON_UNQUOTE(JSON_EXTRACT(extra_fields,'$.seed_key')) LIKE 'DUMMY_QA_20260731_%';
|
||||
-- SELECT COUNT(*) FROM abc_feedback_mappings m JOIN support_tickets t ON t.id=m.ticket_id WHERE t.workspace_id=10 AND JSON_UNQUOTE(JSON_EXTRACT(t.extra_fields,'$.seed_key')) LIKE 'DUMMY_QA_20260731_%';
|
||||
Reference in New Issue
Block a user