PageSourceSearch

https://hanttrail-8fwxhbgl.manus.space/assets/Certifications-B5XP0DR3.js

js hanttrail-8fwxhbgl.manus.space collected 2026-10-03 05:02:55 UTC 58,449 bytes, 17 lines download raw bytes

1import{c as je,q as Xe,s as m,r as l,H as Se,W as Ie,t as d,j as e,B as g,z as P,E as R,ar as oe,L as Me,X as ze,N as Z,O as J,Q as Ne,S as we,Y as Le}from"./index-CqGqwWKp.js";import{g as me}from"./generateCertificate-D6BAa3pf.js";import{B as ne}from"./badge-CajhVRbo.js";import{P as De}from"./progress-Bf510f4G.js";import{T as Ae}from"./textarea-BKrP3zpN.js";import{A as ge}from"./award-Cchfltd5.js";import{T as ue}from"./trophy-BsR5xVEW.js";import{R as Ge}from"./route-COkx8K1a.js";import{C as he}from"./calendar-7CQ0ydQX.js";import{R as He}from"./ruler-DoQFTYtX.js";import{S as Y}from"./shield-D2WoJTIM.js";import{C as _}from"./circle-check-DMfE3wNL.js";import{M as be}from"./map-pin-DifvMV2M.js";import{C as Be}from"./chevron-right-D_p0tWne.js";import{M as de}from"./message-square-KcB10WGt.js";import{N as Ce}from"./navigation-DjckAfzu.js";import{S as Fe}from"./sparkles-BaKLO7vF.js";import{C as le}from"./clock-Sbq_3bEj.js";import{S as Pe}from"./star-QJljQarw.js";import{S as Re}from"./share-2-BtWPkGXJ.js";import"./useComposition-CjDhl5L8.js";import"./usePersistFn-DaDCSoQ3.js";/**
2 * @license lucide-react v0.453.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const Te=je("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
7 * @license lucide-react v0.453.0 - ISC
8 *
9 * This source code is licensed under the ISC license.
10 * See the LICENSE file in the root directory of this source tree.
11 */const We=je("PartyPopper",[["path",{d:"M5.8 11.3 2 22l10.7-3.79",key:"gwxi1d"}],["path",{d:"M4 3h.01",key:"1vcuye"}],["path",{d:"M22 8h.01",key:"1mrtc2"}],["path",{d:"M15 2h.01",key:"1cjtqr"}],["path",{d:"M22 20h.01",key:"1mrys2"}],["path",{d:"m22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10",key:"hbicv8"}],["path",{d:"m22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17",key:"1i94pl"}],["path",{d:"m11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7",key:"1cofks"}],["path",{d:"M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z",key:"4kbmks"}]]),$e="https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/hant-logo-new_6f9c4c11.png",G={1:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-01-6NCHBsjJvjfwChgsFEdmp9.webp",2:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-02-2ehQaKznUUmzYgg6AR3VcT.webp",3:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-03-YXgev5fyr7GXVExhjxQPYR.webp",4:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-04-hg6khPQ8qRsS5XvrLNXyqu.webp",5:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-05-XYngCcftDCBRqEidC4oDa2.webp",6:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-06-HRqxxC9d5AXV84Kkab7yU4.webp",7:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-07-eterFzp2FNFpVxPeDBCvZZ.webp",8:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-08-CAjAGRPHimh5ZaVCMaAnJy.webp",9:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-09-AYjqP9NK9RZFgUddkLBahK.webp",10:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-10-jc6ZHxFsLQmoAb8hDWr2r6.webp",11:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-11-SmSgx7LvjFSc9Kb3F4iErF.webp",12:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-12-Pw2pKcqA9vLKcZgTFFAQTm.webp",13:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-13-k55TYpEEnx4J3sjHcbhv3b.webp",14:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-14-nza56cjW6Pko8VtB58TPgd.webp",15:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-15-Ld9R2dGZxBV2UH3Udo3fki.webp",16:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-16-a4aVtwAERgmtFtGD9Ssqwa.webp",17:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-17-E6SrVYceTLhiRFZz5LQ63g.webp",18:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-18-RVt6JU
11RW883zwLEx8dF2CW.webp",19:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-19-5Emq2wb58rovcjdtXzFEUH.webp",20:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-20-iLKsLjX87E9MYNuVGXHweL.webp",21:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-21-JTtpFTLpxiQtAmJ5Tku5SD.webp",22:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-22-6wZaaeq8jqRWDPRkTvQ9Po.webp",23:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-23-ehUEwbFSPjFDb2q3DQYn6a.webp",24:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-24-49XjZxbVDaLD2d3EsFoqK6.webp",25:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-25-kJtSZAkTD4xXXtyQDLAKLM.webp",26:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-26-dbyZD3DF73AG2UgLuLKfWv.webp",27:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-27-94bTVSoAPAYS8Wfh7D2HVS.webp",28:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-28-gTX7Lhd86w4NfPhxfrGkqr.webp",29:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-29-3rV5UBVSmQi45p3LaEjSXM.webp",30:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-30-LepHiNmH2FtkMspYGSS7GB.webp",31:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-31-KQtFjVnZotsWuZ3J5wSSZK.webp",32:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-32-kvoYjKqWT66BXngvbDzNN6.webp",33:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-33-LvvqF6fGqpxx2YJEW8WEiK.webp",34:"https://d2xsxph8kpxj0f.cloudfront.net/310519663548498135/8FWXHBGLaXzwMXfkkMnXxw/cert-bg-34-gpYr48j69AFJtUcZReXgWE.webp"};function Ee({status:s}){return!s||s==="auto"||s==="approved"?null:s==="rejected"?e.jsxs(ne,{"data-loc":"client/src/pages/Certifications.tsx:98",variant:"secondary",className:"text-xs bg-red-100 text-red-700 border-0",children:[e.jsx(oe,{"data-loc":"client/src/pages/Certifications.tsx:99",size:10,className:"mr-1"}),"반려"]}):s==="pending"?e.jsxs(ne,{"data-loc":"client/src/pages/Certifications.tsx:105",variant:"secondary",className:"text-xs bg-blue-100 text-blue-700 border-0",children:[e.jsx(le,{"data-loc":"client/src/pages/Certifications.tsx:106",size:10,className:"mr-1"}),"검토중"]}):null}function Ke(s){const u=Math.floor(s/3600),x=Math.floor(s%3600/60);return u>0?`${u}시간 ${x}분`:`${x}분`}function Ue({completion:s,onClose:u}){const[x,I]=l.useState(""),k=m.useUtils(),y=m.appeals.submit.useMutation({onSuccess:()=>{d.success("재검토 요청이 접수되었습니다. 관리자 검토 후 결과를 알려드립니다."),k.appeals.myList.invalidate(),u()},onError:j=>{j.data?.code==="CONFLICT"?d.error("이미 검토 요청이 접수되어 있습니다."):d.error("요청 중 오류가 발생했습니다.")}});return e.jsxs(J,{"data-loc":"client/src/pages/Certifications.tsx:147",className:"max-w-sm mx-auto",children:[e.jsx(Ne,{"data-loc":"client/src/pages/Certifications.tsx:148",children:e.jsxs(we,{"data-loc":"client/src/pages/Certifications.tsx:149",className:"flex items-center gap-2",children:[e.jsx(de,{"data-loc":"client/src/pages/Certifications.tsx:150",size:18,className:"text-primary"}),"완주 인증 재검토 요청"]})}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:154",className:"space-y-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:155",className:"bg-muted/50 rounded-lg p-3 text-sm",children:[e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:156",className:"font-semibold text-foreground",children:[s.courseId,"구간 · ",s.courseName]}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:157",className:"text-xs text-muted-foreground mt-0.5",children:s.courseRegion})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:159",children:[e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:160",className:"text-sm font-medium text-foreground mb-1.5",children:["재검토 사유 ",e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:160",className:"text-red-500",children:"*"})]}),e.jsx(Ae,{"data-loc":"client/src/pages/Certifications.tsx:161",placeholder:`재검토를 요청하는 이유를 상세히 작성해 주세요.
12예시) 배터리 방전으로 휴대폰이 켜지지 않아 사진 촬영 및 SMS 인증이 불가했습니다.
13예시) 우싼으로 장갑을 낄고 걷는 중 셀카 촬영이 어려웠습니다.
14예시) GPS 오류로 경로가 일정 구간 기록되지 않았습니다.
15예시) 얼굴이 가려진 상황 설명, 경로 이탈 사유 등`,value:x,onChange:j=>I(j.target.value),rows:4,className:"text-sm resize-none"}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:172",className:"text-xs text-muted-foreground mt-1",children:[x.length,"/1000자 (최소 10자)"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:174",className:"bg-amber-50 border border-amber-200 rounded-lg p-3 text-xs text-amber-800",children:[e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:175",className:"font-semibold mb-1",children:"📋 재검토 안내"}),e.jsxs("ul",{"data-loc":"client/src/pages/Certifications.tsx:176",className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{"data-loc":"client/src/pages/Certifications.tsx:177",children:"관리자가 직접 검토 후 결과를 알려드립니다"}),e.jsx("li",{"data-loc":"client/src/pages/Certifications.tsx:178",children:"처리 기간은 영업일 기준 3~5일 소요될 수 있습니다"}),e.jsx("li",{"data-loc":"client/src/pages/Certifications.tsx:179",children:"동일 구간에 중복 요청은 불가합니다"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:181",className:"mt-2 pt-2 border-t border-amber-200",children:[e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:182",className:"font-semibold mb-0.5",children:"🔋 배터리 방전 등 불가피한 상황도 인정됩니다"}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:183",children:"배터리 방전으로 휴대폰이 켜지지 않아 SMS 인증도 불가한 경우, 사유를 상세히 작성하면 관리자가 걷기 시간 및 GPS 기록을 토대로 직접 승인 여부를 판단합니다."})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:186",className:"flex gap-2",children:[e.jsx(g,{"data-loc":"client/src/pages/Certifications.tsx:187",variant:"outline",className:"flex-1",onClick:u,children:"취소"}),e.jsx(g,{"data-loc":"client/src/pages/Certifications.tsx:190",className:"flex-1",disabled:x.length<10||y.isPending,onClick:()=>y.mutate({completionId:s.id,courseId:s.courseId,reason:x}),children:y.isPending?"접수 중...":"재검토 요청"})]})]})]})}function Ve({completion:s,userName:u,onClose:x,onAppeal:I}){const{data:k}=m.walks.getPhotos.useQuery({walkRecordId:s.walkId},{enabled:!!s.walkId}),{data:y}=m.appeals.myList.useQuery(),j=m.useUtils(),[N,v]=l.useState(!1),[T,z]=l.useState(!1),[X,f]=l.useState(""),[W,w]=l.useState(s.certifiedDate??""),[H,ee]=l.useState(!s.certifiedDate&&s.adminStatus==="approved");m.completions.setWalkDate.useMutation({onSuccess:()=>{d.success("완주 날짜가 저장되었습니다"),j.completions.list.invali
15date(),j.walks.list.invalidate(),ee(!1)},onError:()=>d.error("날짜 저장 중 오류가 발생했습니다")});const S=(s.certifiedDate?new Date(s.certifiedDate):new Date(s.certifiedAt)).toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"}),E=y?.some(i=>i.completionId===s.id&&i.status==="pending"),B=async i=>{const n=`HANT ${s.courseId}구간 완주 인증 - ${u}`,h=[`🏔️ HANT 한국트레일 ${s.courseId}구간 완주 인증`,"",...X.trim()?[`"​${X.trim()}"
16`]:[],`완주자: ${u}`,`구간: ${s.courseName} (${s.courseRegion})`,`거리: ${parseFloat(s.walkDistanceKm).toFixed(2)}km`,`소요시간: ${Ke(s.walkDurationSeconds)}`,`완주일: ${S}`,"","사단법인 한국 사람길 (KHA) 공식 인증","#HANT #한국트레일 #완주인증"].join(`
17`);if(typeof navigator.share=="function"){const te=new File([i],`HANT_${s.courseId}구간_완주인증서.png`,{type:"image/png"}),V=typeof navigator.canShare=="function"&&navigator.canShare({files:[te]});try{V?await navigator.share({title:n,text:h,files:[te]}):await navigator.share({title:n,text:h}),d.success("공유가 완료되었습니다");return}
17catch(M){if(M instanceof Error&&M.name==="AbortError")return}}if(navigator.clipboard)try{typeof ClipboardItem<"u"&&navigator.clipboard.write?await navigator.clipboard.write([new ClipboardItem({"image/png":i,"text/plain":new Blob([h],{type:"text/plain"})})]):await navigator.clipboard.writeText(h),d.success("인증서 이미지와 텍스트가 클립보드에 복사되었습니다. SNS에 붙여넣기 하세요!",{duration:4e3});return}catch{}const L=URL.createObjectURL(i),F=document.createElement("a");F.href=L,F.download=`HANT_${s.courseId}구간_완주인증서.png`,F.click(),URL.revokeObjectURL(L),d.success("인증서가 다운로드되었습니다. SNS에 업로드하세요!")},K=async()=>{v(!0);try{const i=await me({courseId:s.courseId,courseName:s.courseName,courseRegion:s.courseRegion,courseDistance:s.courseDistance,userName:u,certDate:S,certifiedAt:new Date(s.certifiedAt).toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"}),walkDistanceKm:s.walkDistanceKm,walkDurationSeconds:s.walkDurationSeconds,photoUrls:k?.slice(0,3).map(L=>L.photoUrl)}),n=URL.createObjectURL(i),h=document.createElement("a");h.href=n,h.download=`HANT_${s.courseId}구간_완주인증서.png`,h.click(),URL.revokeObjectURL(n),d.success("인증서 이미지가 다운로드되었습니다")}catch{d.error("인증서 생성 중 오류가 발생했습니다")}finally{v(!1)}},U=s.adminStatus==="rejected"||s.adminStatus==="pending";return e.jsxs(J,{"data-loc":"client/src/pages/Certifications.tsx:350",className:"max-w-sm mx-auto",children:[e.jsx(Ne,{"data-loc":"client/src/pages/Certifications.tsx:351",children:e.jsx(we,{"data-loc":"client/src/pages/Certifications.tsx:352",className:"text-center",children:"완주 인증서"})}),s.adminStatus==="rejected"&&e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:357",className:"bg-red-50 border border-red-200 rounded-lg p-3 text-sm",children:[e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:358",className:"font-semibold text-red-700 flex items-center gap-1 mb-1",children:[e.jsx(oe,{"data-loc":"client/src/pages/Certifications.tsx:359",size:14}),"완주 인증 반려"]}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:362",className:"text-red-600 text-xs",children:s.adminNote??"인증 기준을 충족하지 못했습니다."})]}),s.adminStatus==="pending"&&e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:366",className:"bg-blue-50 border border-blue-200 rounded-lg p-3 text-sm",children:[e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:367",className:"font-semibold text-blue-700 flex items-center gap-1 mb-1",children:[e.jsx(le,{"data-loc":"client/src/pages/Certifications.tsx:368",size:14}),"검토 대기 중"]}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:371",className:"text-blue-600 text-xs",children:s.adminNote??"관리자 검토 후 인증 여부가 결정됩니다."})]}),(!s.adminStatus||s.adminStatus==="auto"||s.adminStatus==="approved")&&e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:377",className:"relative overflow-hidden rounded-2xl p-5 text-center",style:{background:"linear-gradient(135deg, #0a1f14 0%, #122b1c 50%, #071510 100%)",border:"2px solid #c9a84c",boxShadow:"0 0 0 1px rgba(201,168,76,0.2) inset, 0 8px 32px rgba(0,0,0,0.5)"},children:[[["top-2 left-2","border-t border-l"],["top-2 right-2","border-t border-r"],["bottom-2 left-2","border-b border-l"],["bottom-2 right-2","border-b border-r"]].map(([i,n],h)=>e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:387",className:`absolute ${i} w-4 h-4 ${n}`,style:{borderColor:"#c9a84c",opacity:.7}},h)),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:391",className:"flex justify-center mb-2",children:e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:392",className:"relative",children:[e.jsx("img",{"data-loc":"client/src/pages/Certifications.tsx:393",src:$e,alt:"HANT",className:"w-12 h-12 object-contain",style:{filter:"brightness(0) invert(1)"}}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:394",className:"absolute -bottom-1 -right-1 w-5 h-5 rounded-full flex items-center justify-center",style:{background:"linear-gradient(135deg,#c9a84c,#f5e07a)"},children:e.jsx(Pe,{"data-loc":"client/src/pages/Certifications.tsx:395",size:10,
17className:"text-white fill-white"})})]})}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:401",className:"text-xs mb-0.5",style:{color:"rgba(245,224,122,0.6)",letterSpacing:"1px"},children:"사단법인 한국 사람길 (KHA) · HANT 한국트레일"}),e.jsx("h2",{"data-loc":"client/src/pages/Certifications.tsx:402",className:"text-xl font-bold mb-0.5",style:{color:"#f5e07a"},children:"완  주  인  증  서"}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:403",className:"text-xs mb-3",style:{color:"rgba(255,255,255,0.45)"},children:"아래 구간을 성공적으로 완주하였음을 인증합니다"}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:406",className:"rounded-xl p-3 mb-3 relative overflow-hidden",style:{background:"rgba(26,74,42,0.4)",border:"1px solid rgba(201,168,76,0.4)",minHeight:"80px"},children:[G[s.courseId]&&e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:409",className:"absolute inset-0 overflow-hidden rounded-xl",children:[e.jsx("img",{"data-loc":"client/src/pages/Certifications.tsx:410",src:G[s.courseId],alt:"",className:"w-full h-full object-cover",style:{opacity:.25}}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:417",className:"absolute inset-0",style:{background:"rgba(10,40,20,0.55)"}})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:421",className:"relative text-center z-10",children:[e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:422",className:"text-xl font-bold mb-0.5",style:{color:"#f5e07a"},children:["제 ",s.courseId,"구간"]}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:423",className:"font-bold text-white text-sm",children:s.courseName}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:424",className:"text-xs",style:{color:"rgba(134,239,172,0.8)"},children:[s.courseRegion," · ",s.courseDistance,"km"]})]})]}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:429",className:"text-xl font-bold mb-1",style:{color:"#f5e07a"},children:u}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:430",className:"text-xs mb-1",style:{color:"rgba(255,255,255,0.4)"},children:["위 사람은 HANT 한국트레일 ",s.courseId,"구간을 완주하였기에 이를 인증합니다"]}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:431",className:"text-xs mb-3",style:{color:"rgba(245,224,122,0.7)"},children:new Date(s.certifiedAt).toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"})}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:434",className:"grid grid-cols-2 gap-2 mb-3",children:[{label:"완주 일시",value:S},{label:"걷기 거리",value:`${parseFloat(s.walkDistanceKm).toFixed(2)}km`}].map(i=>e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:436",className:"rounded-lg p-2",style:{background:"rgba(26,74,42,0.3)",border:"1px solid rgba(201,168,76,0.25)"},children:[e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:437",className:"text-xs mb-0.5",style:{color:"rgba(134,239,172,0.7)"},children:i.label}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:438",className:"text-xs font-bold text-white",children:i.value})]},i.label))}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:444",className:"flex items-center justify-center gap-1.5 mb-3",children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:445",className:"w-5 h-px",style:{background:"linear-gradient(to right, transparent, #c9a84c)"}}),e.jsx(Y,{"data-loc":"client/src/pages/Certifications.tsx:446",size:11,style:{color:"#f5e07a"}}),e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:447",className:"text-xs",style:{color:"rgba(245,224,122,0.7)"},children:"HANT 공식 완주 인증"}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:448",className:"w-5 h-px",style:{background:"linear-gradient(to left, transparent, #c9a84c)"}})]})]}),U&&e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:459",className:"space-y-2",children:E?e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:461",className:"flex items-center gap-2 bg-amber-50 border border-amber-200 rounded-lg p-3 text-xs text-amber-700",children:[e.jsx(le,{"data-loc":"client/src/pages/Certifications.tsx:462",size:14}),e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:463",children:"재검토 요청이 접수되어 검토 중입니다."})]}):e.jsxs(g,{"data-loc":"client/src/pages/Certifications.tsx:466",variant:"outline",className:"w-full border-primary/30 text-primary hover:bg-primary/5",onClick:()=>{x(),I()},children:[e.jsx(de,{"data-loc":"client/src/pages/Certifications.tsx:471",size:14,className:"mr-2"}),"재검토 요청하기"]})}),T&&e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:480",className:"mt-3 p-4 rounded-xl bg-amber-50 border border-amber-300",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:483",className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:484",className:"text-sm font-semibold text-amber-800",children:"한 줄 소감 입력"}),e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:485",className:"text-xs text-amber-600",children:"(선택사항 — 공유 텍스트에 포함)"})]}),e.jsx("input",{"data-loc":"client/src/pages/Certifications.tsx:487",type:"text",value:X,onChange:i=>{i.target.value.length<=80&&f(i.target.value)},placeholder:"예: 오늘도 한 발씩 더 걷는 하루!",className:"w-full px-3 py-2 rounded-lg text-sm outline-none border border-amber-300 bg-white text-amber-900 placeholder:text-amber-400",autoFocus:!0}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:495",className:"flex justify-between items-center mt-2",children:[e.jsxs("span",{"data-loc":"client/src/pages/Certifications.tsx:496",className:`text-xs ${X.length>=80?"text-red-500 font-semibold":"text-amber-500"}`,children:[X.length,"/80",X.length>=80?" (최대)":""]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:497",className:"flex gap-2",children:[e.jsx("button",{"data-loc":"client/src/pages/Certifications.tsx:498",className:"text-xs px-3 py-1 rounded-lg bg-amber-100 text-amber-700 border border-amber-200",onClick:()=>{z(!1),f("")},children:"취소"}),e.jsx("button",{"data-loc":"client/src/pages/Certifications.tsx:504",className:"text-xs px-3 py-1 rounded-lg font-semibold bg-amber-600 text-white",onClick:async()=>{z(!1),v(!0);try{const i=await me({courseId:s.courseId,courseName:s.courseName,courseRegion:s.courseRegion,courseDistance:s.courseDistance,userName:u,certDate:(s.certifiedDate?new Date(s.certifiedDate):new Date(s.certifiedAt)).toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"}),certifiedAt:new Date(s.certifiedAt).toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric"}),walkDistanceKm:s.walkDistanceKm,walkDurationSeconds:s.walkDurationSeconds,photoUrls:k?.slice(0,3).map(n=>n.photoUrl),shareNote:X.trim()||void 0});await B(i)}catch{d.error("공유 중 오류가 발생했습니다")}finally{v(!1)}},children:"공유하기"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:538",className:"flex gap-2 mt-2",children:[e.jsx(g,{"data-loc":"client/src/pages/Certifications.tsx:539",variant:"outline",className:"flex-1",onClick:x,children:"닫기"}),(!s.adminStatus||s.adminStatus==="auto"||s.adminStatus==="approved")&&e.jsxs(e.Fragment,{children:[e.jsxs(g,{"data-loc":"client/src/pages/Certifications.tsx:544",variant:"outline",className:"flex-1",disabled:N,onClick:()=>z(!0),children:[e.jsx(Re,{"data-loc":"client/src/pages/Certifications.tsx:550",size:14,className:"mr-2"}),"SNS 공유"]}),e.jsxs(g,{"data-loc":"client/src/pages/Certifications.tsx:553",className:"flex-1",onClick:K,disabled:N,children:[e.jsx(Le,{"data-loc":"client/src/pages/Certifications.tsx:554",size:14,className:"mr-2"}),N?"생성 중...":"PNG 다운로드"]})]})]})]})}function gt(){const{isAuthenticated:s,user:u}=Xe(),x=m.useUtils(),[I,k]=l.useState(null),[y,j]=l.useState(null),[N,v]=l.useState(null),[,T]=Se(),z=Ie(),X=new URLSearchParams(z).get("tab")==="PGB"?"PGB":"HG",[f,W]=l.useState(X);l.useEffect(()=>{const t=new URLSearchParams(z).get("tab")==="PGB"?"PGB":"HG";W(t)},[z]);const[w,H]=l.useState(null),[ee,$]=l.useState(!1),[S,E]=l.useState(!1),[B,K]=l.useState("courseId"),U=l.useRef(!1),{data:i}=m.courses.list.useQuery(),{data:n,isLoading:h}=m.completions.list.useQuery(void 0,{enabled:s,staleTime:60*1e3,placeholderData:t=>t}),L=l.useMemo(()=>{try{const t=localStorage.getItem("hant_pgb_courses_cache");if(t)return JSON.parse(t)}catch{}},[]),{data:F}=m.courses.listPublicGpx.useQuery({trailTag:"HANT-PGB"},{staleTime:1800*1e3,placeholderData:L}),V=(F??[]).filter(t=>t.isActive===1).sort((t,a)=>(t.segmentNum??9999)-(a.segmentNum??9999)).length||33,{data:M}=m.walks.list.useQuery(void 0,{enabled:s,staleTime:60*1e3,placeholderData:t=>t}),{data:q}=m.appeals.myList.useQuery(void 0,{enabled:s}
17),se=m.completions.certifyCombined.useMutation({onSuccess:(t,a)=>{if(x.completions.list.invalidate(),t.certified){d.success(`🎉 이어걷기 합산 인증 완료! ${t.reason}`,{duration:6e3});const r=a.courseId+1;i?.find(o=>o.id===r)&&v(r)}},onError:()=>{}}),ae=m.completions.certify.useMutation({onSuccess:(t,a)=>{if(x.completions.list.invalidate(),!S)if(t.certified){d.success("🎉 완주 인증이 완료되었습니다!",{duration:5e3});const r=a.courseId+1;i?.find(o=>o.id===r)&&v(r)}else t.adminStatus==="pending"?(d(`🔍 인증 검토 중: ${t.reason}`,{duration:6e3,icon:"🔍"}),x.completions.list.invalidate()):t.adminStatus==="rejected"?d.error(`인증 불가: ${t.reason}`,{duration:5e3}):d.error(t.reason||"완주 인증 기준을 충족하지 못했습니다.",{duration:5e3})},onError:()=>{S||d.error("인증 처리 중 오류가 발생했습니다")}});if(l.useEffect(()=>{if(!s||!M||!n||!i||U.current||S)return;const t=new Set(n.filter(c=>!c.adminStatus||c.adminStatus==="auto"||c.adminStatus==="approved").map(c=>c.courseId)),a=M.filter(c=>c.courseId&&!t.has(c.courseId)&&c.hasTrackPoints),r=new Set,o=a.filter(c=>r.has(c.courseId)?!1:(r.add(c.courseId),!0));if(o.length===0)return;U.current=!0,E(!0),(async()=>{let c=null,D=t.size;for(const p of o)try{if((await ae.mutateAsync({walkId:p.id,courseId:p.courseId})).certified){const C=i.find(A=>A.id===p.courseId);c={id:p.courseId,name:C?.name??`${p.courseId}구간`,distance:C?.distance??0},D++}else if(p.courseId&&(ce[p.courseId]??1)>=2)try{if((await se.mutateAsync({courseId:p.courseId})).certified){const A=i.find(ve=>ve.id===p.courseId);c={id:p.courseId,name:A?.name??`${p.courseId}구간`,distance:A?.distance??0},D++}}catch{}}catch{}if(E(!1),c){const p=await x.completions.list.fetch();if(new Set(p?.filter(C=>!C.adminStatus||C.adminStatus==="auto"||C.adminStatus==="approved").map(C=>C.courseId)??[]).size>=(i?.length??34))$(!0);else{H(c);const C=c.id+1;i?.find(A=>A.id===C)&&v(C)}}})()},[s,M,n,i]),!s)return e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:732",className:"min-h-screen flex flex-col items-center justify-center p-6 text-center",children:[e.jsx(ge,{"data-loc":"client/src/pages/Certifications.tsx:733",size:48,className:"text-primary mb-4 opacity-60"}),e.jsx("h2",{"data-loc":"client/src/pages/Certifications.tsx:734",className:"text-xl font-bold mb-2",children:"로그인이 필요합니다"}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:735",className:"text-muted-foreground text-sm mb-6",children:"완주 인증 기능을 사용하려면 로그인해 주세요."}),e.jsx("a",{"data-loc":"client/src/pages/Certifications.tsx:736",href:"/register",children:e.jsx(g,{"data-loc":"client/src/pages/Certifications.tsx:736",children:"로그인"})})]});const Q=new Set(n?.filter(t=>!t.adminStatus||t.adminStatus==="auto"||t.adminStatus==="approved").map(t=>t.courseId)??[]),O=new Set(n?.filter(t=>(!t.adminStatus||t.adminStatus==="auto"||t.adminStatus==="approved")&&t.courseId>=1001).map(t=>t.courseId-1e3)??[]),xe=f==="PGB"?O.size:Q.size,ie=f==="PGB"?V:i?.length??34,pe=ie>0?Math.round(xe/ie*100):0,fe=M?.filter(t=>!t.courseId||!t.hasTrackPoints?!1:f==="PGB"?t.courseId>=1001&&!O.has(t.courseId-1e3):t.courseId<=34&&!Q.has(t.courseId))??[],ce=M?.reduce((t,a)=>{if(!a.courseId||!a.hasTrackPoints)return t;const r=a.courseId<=34&&!Q.has(a.courseId),o=a.courseId>=1001&&!O.has(a.courseId-1e3);return(f==="HG"&&r||f==="PGB"&&o)&&(t[a.courseId]=(t[a.courseId]??0)+1),t},{})??{},ke=Object.entries(ce).filter(([,t])=>t>=2).map(([t])=>Number(t)),ye=new Set(q?.filter(t=>t.status==="pending").map(t=>t.completionId)??[]);return e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:785",className:"min-h-screen",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:787",className:"sticky top-0 z-10 bg-background border-b border-border",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:788",className:"container py-4",children:[e.jsx("h1",{"data-loc":"client/src/pages/Certifications.tsx:789",className:"text-xl font-bold text-foreground",children:"HANT 완주 인증"}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:790",className:"text-sm text-muted-foreground mt-1",children:"HANT 구간별 완주 인증 현황"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:793",className:"flex border-b border-border px-4",children:[e.jsx("button",{"data-loc":"client/src/pages/Certifications.tsx:794",onClick:()=>{W("HG"),window.history.replaceState(null,"","/certifications")},className:`flex-1 py-2 text-sm font-bold border-b-2 transition-colors ${f==="HG"?"border-emerald-500 text-emerald-700":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"🏔️ HG (해남-고성)"}),e.jsx("button",{"data-loc":"client/src/pages/Certifications.tsx:800",onClick:()=>{W("PGB"),window.history.replaceState(null,"","/certifications?tab=PGB")},className:`flex-1 py-2 text-sm font-bold border-b-2 transition-colors ${f==="PGB"?"border-blue-500 text-blue-700":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"🌊 PGB (파주/강화-부산)"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:809",className:"container py-4 pb-24 space-y-4",children:[e.jsx(P,{"data-loc":"client/src/pages/Certifications.tsx:811",children:e.jsxs(R,{"data-loc":"client/src/pages/Certifications.tsx:812",className:"p-5",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:813",className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:814",className:"w-12 h-12 rounded-2xl bg-amber-50 flex items-center justify-center",children:e.jsx(ue,{"data-loc":"client/src/pages/Certifications.tsx:815",size:24,className:"text-amber-500"})}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:817",children:[e.jsx("h2",{"data-loc":"client/src/pages/Certifications.tsx:818",className:"font-bold text-foreground",children:"완주 진행률"}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:819",className:"text-sm text-muted-foreground",children:[xe,"개 완주 / 전체 ",ie,"개 구간"]})]}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:821",className:"ml-auto text-right",children:e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:822",className:"text-2xl font-bold text-primary",children:[pe,"%"]})})]}),e.jsx(De,{"data-loc":"client/src/pages/Certifications.tsx:825",value:pe,className:"h-3 mb-3"}),f==="HG"?e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:827",className:"grid grid-cols-10 gap-1 mt-3",children:i?.map(t=>e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:829",className:`aspect-square rounded text-[10px] font-bold flex items-center justify-center cursor-pointer transition-all ${Q.has(t.id)?"bg-emerald-600 text-white shadow-sm":"bg-muted text-muted-foreground hover:bg-muted/60"}`,title:`${t.id}구간 ${t.name}`,onClick:()=>{const a=n?.find(r=>r.courseId===t.id);a&&k(a)},children:t.id},t.id))}):e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:847",className:"grid grid-cols-10 gap-1 mt-3",children:Array.from({length:V},(t,a)=>a+1).map(t=>e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:849",className:`aspect-square rounded text-[10px] font-bold flex items-center justify-center cursor-pointer transition-all ${O.has(t)?"bg-blue-600 text-white shadow-sm":"bg-muted text-muted-foreground hover:bg-muted/60"}`,title:`PGB ${t}구간`,children:t},t))}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:863",className:"flex items-center gap-4 mt-2 text-xs text-muted-foreground",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:864",className:"flex items-center gap-1",children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:864",className:`w-3 h-3 rounded ${f==="HG"?"bg-emerald-600":"bg-blue-600"}`}),e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:864",children:"완주 인증"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:865",className:"flex items-center gap-1",children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:865",className:"w-3 h-3 rounded bg-muted"}),e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:865",children:"미완주"})]})]})]})}),S&&e.jsx(P,{"data-loc":"client/src/pages/Certifications.tsx:872",className:"border-primary/30 bg-primary/5",children:e.jsxs(R,{"data-loc":"client/src/pages/Certifications.tsx:873",className:"p-4 flex items-center gap-3",children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:874",className:"w-8 h-8 rounded-full border-2 border-primary border-t-transparent animate-spin shrink-0"}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:875",children:[e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:876",className:"text-sm font-semibold text-foreground",children:"완주 인증 자동 처리 중..."}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:877",className:"text-xs text-muted-foreground mt-0.5",children:"걷기 기록을 분석하고 있습니다"})]})]})}),!S&&fe.length>0&&e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:885",children:[e.jsxs("h2",{"data-loc":"client/src/pages/Certifications.tsx:886",className:"text-sm font-bold text-foreground mb-2 flex items-center gap-2",children:[e.jsx(Ge,{"data-loc":"client/src/pages/Certifications.tsx:887",size:16,className:"text-blue-500"}),"인증 대기 중인 걷기 기록",e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:889",className:"text-xs font-normal text-muted-foreground",children:"(GPS 경로 불일치 등 인증 미완료)"})]}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:891",className:"space-y-2",children:(()=>{const t=new Set;return fe.slice(0,5).map(a=>{const r=i?.find(c=>c.id===a.courseId),o=a.courseId?ce[a.courseId]??1:1,b=!!(a.courseId&&ke.includes(a.courseId)&&!t.has(a.c
17ourseId));return b&&a.courseId&&t.add(a.courseId),e.jsx(P,{"data-loc":"client/src/pages/Certifications.tsx:900",className:"border-amber-200 bg-amber-50/30",children:e.jsx(R,{"data-loc":"client/src/pages/Certifications.tsx:901",className:"p-4",children:e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:902",className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:903",className:"flex-1 min-w-0",children:[e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:904",className:"font-semibold text-sm text-foreground",children:[a.courseId,"구간 ",r?.name??""]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:907",className:"flex items-center gap-3 mt-1 text-xs text-muted-foreground",children:[e.jsxs("span",{"data-loc":"client/src/pages/Certifications.tsx:908",className:"flex items-center gap-1",children:[e.jsx(he,{"data-loc":"client/src/pages/Certifications.tsx:908",size:10}),new Date(a.startedAt).toLocaleDateString("ko-KR")]}),e.jsxs("span",{"data-loc":"client/src/pages/Certifications.tsx:909",className:"flex items-center gap-1",children:[e.jsx(He,{"data-loc":"client/src/pages/Certifications.tsx:909",size:10}),parseFloat(a.distanceKm??"0").toFixed(1),"km"]}),o>1&&e.jsxs("span",{"data-loc":"client/src/pages/Certifications.tsx:911",className:"text-orange-600 font-medium",children:["이어걷기 ",o,"회"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:914",className:"mt-1.5 flex items-center gap-1 text-xs text-amber-700",children:[e.jsx(oe,{"data-loc":"client/src/pages/Certifications.tsx:915",size:10}),e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:916",children:"GPS 경로 불일치 또는 인증 기준 미충족으로 자동 인증 실패"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:919",className:"flex flex-col gap-1.5",children:[e.jsxs(g,{"data-loc":"client/src/pages/Certifications.tsx:920",size:"sm",variant:"outline",className:"border-blue-200 text-blue-600 hover:bg-blue-50 text-xs",onClick:()=>ae.mutate({walkId:a.id,courseId:a.courseId}),disabled:ae.isPending,children:[e.jsx(Y,{"data-loc":"client/src/pages/Certifications.tsx:927",size:12,className:"mr-1"}),"인증 신청"]}),b&&e.jsx(g,{"data-loc":"client/src/pages/Certifications.tsx:931",size:"sm",variant:"outline",className:"border-orange-200 text-orange-600 hover:bg-orange-50 text-xs",onClick:()=>se.mutate({courseId:a.courseId}),disabled:se.isPending,children:"🔗 합산 인증"})]})]})})},a.id)})})()})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:953",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:954",className:"flex items-center justify-between mb-2",children:[e.jsxs("h2",{"data-loc":"client/src/pages/Certifications.tsx:955",className:"text-sm font-bold text-foreground flex items-center gap-2",children:[e.jsx(ge,{"data-loc":"client/src/pages/Certifications.tsx:956",
17size:16,className:"text-primary"}),"완주 인증 목록 (",(f==="PGB"?n?.filter(t=>t.courseId>=1001):n?.filter(t=>t.courseId<=34))?.length??0,"개)"]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:959",className:"flex gap-1",children:[e.jsx("button",{"data-loc":"client/src/pages/Certifications.tsx:960",onClick:()=>K("courseId"),className:`text-xs px-2 py-1 rounded-full border transition-colors ${B==="courseId"?"bg-amber-600 text-white border-amber-600":"border-amber-600/40 text-amber-600/70 hover:border-amber-600"}`,children:"구간 순"}),e.jsx("button",{"data-loc":"client/src/pages/Certifications.tsx:970",onClick:()=>K("latest"),className:`text-xs px-2 py-1 rounded-full border transition-colors ${B==="latest"?"bg-amber-600 text-white border-amber-600":"border-amber-600/40 text-amber-600/70 hover:border-amber-600"}`,children:"최근 순"})]})]}),(()=>{const t=f==="PGB"?n?.filter(a=>a.courseId>=1001):n?.filter(a=>a.courseId<=34);return h?e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:987",className:"space-y-2",children:[1,2,3].map(a=>e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:987",className:"h-20 bg-muted animate-pulse rounded-xl"},a))}):t&&t.length>0?e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:989",className:"space-y-2",children:[...t].sort((a,r)=>B==="latest"?new Date(r.certifiedAt).getTime()-new Date(a.certifiedAt).getTime():a.courseId-r.courseId).map(a=>{const r=ye.has(a.id),o=!a.adminStatus||a.adminStatus==="auto"||a.adminStatus==="approved",b=a.adminStatus==="rejected",c=a.adminStatus==="pending";return e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1000",className:"relative overflow-hidden rounded-xl cursor-pointer transition-all hover:scale-[1.01] active:scale-[0.99]",style:{background:b?"linear-gradient(135deg, #1f0a0a 0%, #2b1212 100%)":c?"linear-gradient(135deg, #0a0f1f 0%, #121b2b 100%)":"linear-gradient(135deg, #0a1f14 0%, #122b1c 50%, #071510 100%)",border:b?"1.5px solid rgba(239,68,68,0.5)":c?"1.5px solid rgba(59,130,246,0.5)":"1.5px solid #c9a84c",boxShadow:o?"0 2px 8px rgba(0,0,0,0.3)":"none"},onClick:()=>k(a),children:[o&&[["-top-0.5 -left-0.5","border-t border-l"],["-top-0.5 -right-0.5","border-t border-r"],["-bottom-0.5 -left-0.5","border-b border-l"],["-bottom-0.5 -right-0.5","border-b border-r"]].map(([D,p],re)=>e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1016",className:`absolute ${D} w-2.5 h-2.5 ${p}`,style:{borderColor:"#c9a84c",opacity:.6}},re)),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1019",className:"flex items-stretch",style:{height:76},children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1021",className:"flex flex-col items-center justify-center gap-1 shrink-0",style:{width:58,paddingLeft:10,paddingRight:6},children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1022",className:"w-9 h-9 rounded-full flex items-center justify-center font-bold text-sm",style:{background:b?"rgba(239,68,68,0.2)":c?"rgba(59,130,246,0.2)":"rgba(201,168,76,0.2)",border:b?"1px solid rgba(239,68,68,0.4)":c?"1px solid rgba(59,130,246,0.4)":"1px solid rgba(201,168,76,0.5)",color:b?"#f87171":c?"#60a5fa":"#f5e07a"},children:a.courseId}),e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:1032",className:"text-[9px] px-1.5 py-0.5 rounded-full font-medium leading-tight",style:{background:b?"rgba(239,68,68,0.2)":c?"rgba(59,130,246,0.2)":"rgba(201,168,76,0.15)",color:b?"#f87171":c?"#60a5fa":"#f5e07a"},children:b?"반려":c?"검토중":"완주"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1043",className:"flex-1 min-w-0 flex flex-col justify-center",style:{paddingTop:10,paddingBottom:10,paddingRight:8},children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1044",className:"flex items-center gap-1 mb-0.5",children:[e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:1045",className:"font-semibold text-sm text-white truncate",children:[a.courseId,"구간 ",a.courseName]}),o&&e.jsx(_,{"data-loc":"client/src/pages/Certifications.tsx:1046",size:11,style:{color:"#86efac"},className:"shrink-0"})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1048",className:"flex items-center gap-2 text-xs mb-1",style:{color:"rgba(255,255,255,0.45)"},children:[e.jsxs("span",{"data-loc":"client/src/pages/Certifications.tsx:1049",className:"flex items-center gap-0.5 shrink-0",children:[e.jsx(be,{"data-loc":"client/src/pages/Certifications.tsx:1049",size:9}),a.courseRegion]}),e.jsxs("span",{"data-loc":"client/src/pages/Certifications.tsx:1050",className:"flex items-center gap-0.5 truncate",children:[e.jsx(he,{"data-loc":"client/src/pages/Certifications.tsx:1050",size:9}),(a.certifiedDate?new Date(a.certifiedDate):new Date(a.certifiedAt)).toLocaleDateString("ko-KR")]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1052",className:"flex items-center gap-1",children:[e.jsx(Ee,{"data-loc":"client/src/pages/Certifications.tsx:1053",status:a.adminStatus}),o&&a.completionCount>=2&&e.jsxs("span",{"data-loc":"client/src/pages/Certifications.tsx:1055",className:"text-[9px] px-1.5 py-0.5 rounded-full font-bold shrink-0",style:{background:a.completionCount>=3?"rgba(124,58,237,0.3)":"rgba(8,145,178,0.3)",color:a.completionCount>=3?"#a78bfa":"#67e8f9",border:`1px solid ${a.completionCount>=3?"rgba(167,139,250,0.5)":"rgba(103,232,249,0.5)"}`},children:[a.completionCount,"회 완주"]}),r&&e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:1058",className:"text-[9px] px-1.5 py-0.5 rounded shrink-0",style:{background:"rgba(245,158,11,0.2)",color:"#fbbf24"},children:"재검토"})]})]}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1063",className:"shrink-0 overflow-hidden rounded-r-xl",style:{width:60},children:G[a.courseId]?e.jsx("img",{"data-loc":"client/src/pages/Certifications.tsx:1065",src:G[a.courseId],alt:a.courseRegion,style:{width:"100%",height:"100%",objectFit:"cover",opacity:o?.85:.35,display:"block"},onError:D=>{D.target.parentElement.style.display="none"}}):e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1072",style:{width:"100%",height:"100%",background:"rgba(255,255,255,0.04)",display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(be,{"data-loc":"client/src/pages/Certifications.tsx:1073",size:14,style:{color:"rgba(255,255,255,0.15)"}})})})]})]},a.id)})}):e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1083",className:"text-center py-12 text-muted-foreground",children:[e.jsx(Te,{"data-loc":"client/src/pages/Certifications.tsx:1084",size:48,className:"mx-auto mb-3 opacity-20"}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1085",className:"font-medium mb-1",children:"아직 완주 인증이 없습니다"}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1086",className:"text-xs mb-4",children:"구간을 선택하고 걷기를 완료하면 자동으로 인증됩니다"}),e.jsx(Me,{"data-loc":"client/src/pages/Certifications.tsx:1087",href:"/courses",children:e.jsxs(g,{"data-loc":"client/src/pages/Certifications.tsx:1088",variant:"outline",size:"sm",children:["구간 선택하기",e.jsx(Be,{"data-loc":"client/src/pages/Certifications.tsx:1090",size:14,className:"ml-1"})]})})]})})()]}),q&&q.length>0&&e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1100",children:[e.jsxs("h2",{"data-loc":"client/src/pages/Certifications.tsx:1101",className:"text-sm font-bold text-foreground mb-2 flex items-center gap-2",children:[e.jsx(de,{"data-loc":"client/src/pages/Certifications.tsx:1102",size:16,className:"text-amber-500"}),"내 재검토 요청 내역"]}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1105",className:"space-y-2",children:q.map(t=>e.jsx(P,{"data-loc":"client/src/pages/Certifications.tsx:1107",className:"border-amber-100",children:e.jsx(R,{"data-loc":"client/src/pages/Certifications.tsx:1108",className:"p-3",children:e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1109",className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1110",className:"flex-1 min-w-0",children:[e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:1111",className:"text-sm font-semibold text-foreground",children:[t.courseId,"구간 재검토 요청"]}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1112",className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:t.reason}),t.adminReply&&e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:1114",className:"text-xs text-primary mt-1 bg-primary/5 rounded p-1.5",children:["💬 관리자 답변: ",t.adminReply]}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1118",className:"text-xs text-muted-foreground mt-1",children:new Date(t.createdAt).toLocaleDateString("ko-KR")})]}),e.jsx(ne,{"data-loc":"client/src/pages/Certifications.tsx:1122",variant:"secondary",className:`text-xs border-0 shrink-0 ${t.status==="pending"?"bg-amber-100 text-amber-700":t.status==="approved"?"bg-green-100 text-green-700":"bg-red-100 text-red-700"}`,children:t.status==="pending"?"검토중":t.status==="approved"?"승인":"반려"})]})})},t.id))})]}),e.jsx(P,{"data-loc":"client/src/pages/Certifications.tsx:1138",className:"bg-muted/30",children:e.jsxs(R,{"data-loc":"client/src/pages/Certifications.tsx:1139",className:"p-4",children:[e.jsxs("h3",{"data-loc":"client/src/pages/Certifications.tsx:1140",className:"font-semibold text-sm text-foreground mb-2 flex items-center gap-2",children:[e.jsx(Y,{"data-loc":"client/src/pages/Certifications.tsx:1141",size:14,className:"text-primary"}),"HANT 완주인증기준"]}),e.jsxs("ul",{"data-loc":"client/src/pages/Certifications.tsx:1144",className:"space-y-1.5 text-xs text-muted-foreground",children:[e.jsxs("li",{"data-loc":"client/src/pages/Certifications.tsx:1145",className:"flex items-start gap-2",children:[e.jsx(_,{"data-loc":"client/src/pages/Certifications.tsx:1145",size:12,className:"mt-0.5 shrink-0 text-primary"}),"구간 별 셀카를 최소 2장 이상 촬영해야 합니다"]}),e.jsxs("li",{"data-loc":"client/src/pages/Certifications.tsx:1146",className:"flex items-start gap-2",children:[e.jsx(_,{"data-loc":"client/src/pages/Certifications.tsx:1146",size:12,className:"mt-0.5 shrink-0 text-primary"}),"프로필 얼굴사진과 걷기 중 사진이 일치해야 합니다"]}),e.jsxs("li",{"data-loc":"client/src/pages/Certifications.tsx:1147",className:"flex items-start gap-2",children:[e.jsx(_,{"data-loc":"client/src/pages/Certifications.tsx:1147",size:12,className:"mt-0.5 shrink-0 text-primary"}),"인증 완료 후 인증서를 다운로드할 수 있습니다"]})]})]})})]}),N&&(()=>{const t=i?.find(a=>a.id===N);return t?e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1158",className:"fixed bottom-20 left-0 right-0 z-50 px-4",children:e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1159",className:"bg-primary text-primary-foreground rounded-2xl p-4 shadow-2xl flex items-center gap-3",children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1160",className:"w-10 h-10 rounded-full bg-white/20 flex items-center justify-center font-bold text-sm shrink-0",children:t.id}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1161",className:"flex-1 min-w-0",children:[e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1162",className:"text-xs font-medium opacity-80 mb-0.5",children:"🎉 완주 인증 완료! 다음 구간"}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1163",className:"font-bold text-sm truncate",children:t.name}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:1164",className:"text-xs opacity-70",children:[t.distance,"km · ",t.difficulty]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1166",className:"flex gap-2 shrink-0",children:[e.jsxs(g,{"data-loc":"client/src/pages/Certifications.tsx:1167",size:"sm",variant:"secondary",className:"bg-white/20 hover:bg-white/30 text-primary-foreground border-0 text-xs px-3",onClick:()=>T(`/courses/${t.id}`),children:[e.jsx(Ce,{"data-loc":"client/src/pages/Certifications.tsx:1168",size:12,className:"mr-1"}),"구간 보기"]}),e.jsx("button",{"data-loc":"client/src/pages/Certifications.tsx:1170",className:"w-7 h-7 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors",onClick:()=>v(null),children:e.jsx(ze,{"data-loc":"client/src/pages/Certifications.tsx:1171",size:14})})]})]})}):null})(),e.jsx(Z,{"data-loc":"client/src/pages/Certifications.tsx:1180",open:!!w,onOpenChange:()=>H(null),children:e.jsx(J,{"data-loc":"client/src/pages/Certifications.tsx:1181",className:"max-w-sm mx-auto",children:e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1182",className:"py-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1184",className:"text-center mb-4",children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1185",className:"w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-3",children:e.jsx(We,{"data-loc":"client/src/pages/Certifications.tsx:1186",size:32,className:"text-primary"})}),e.jsx("h2",{"data-loc":"client/src/pages/Certifications.tsx:1188",className:"text-xl font-bold text-foreground mb-1",children:"완주 인증 완료! 🎉"}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:1189",className:"text-muted-foreground text-sm",children:[w?.id,"구간 완주를 축하합니다"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1193",className:"relative overflow-hidden rounded-xl p-4 mb-4",style:{background:"linear-gradient(135deg, #0a1f14 0%, #122b1c 50%, #071510 100%)",border:"1.5px solid #c9a84c"},children:[[["top-1.5 left-1.5","border-t border-l"],["top-1.5 right-1.5","border-t border-r"],["bottom-1.5 left-1.5","border-b border-l"],["bottom-1.5 right-1.5","border-b border-r"]].map(([t,a],r)=>e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1202",className:`absolute ${t} w-3 h-3 ${a}`,style:{borderColor:"#c9a84c",opacity:.7}},r)),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1204",className:"flex items-center gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1206",className:"flex-1 min-w-0",children:[e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1207",className:"text-xs mb-0.5",style:{color:"rgba(245,224,122,0.6)"},children:"HANT 한국트레일 완주 인증서"}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:1208",className:"font-bold text-white text-sm",children:[w?.id,"구간 ",w?.name]}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:1209",className:"text-xs mt-0.5",style:{color:"rgba(134,239,172,0.8)"},children:[w?.region," · ",w?.distance,"km"]}
17)]}),w?.id&&G[w.id]&&e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1213",className:"shrink-0 w-16 h-20 rounded-lg overflow-hidden",style:{border:"1px solid rgba(201,168,76,0.4)"},children:e.jsx("img",{"data-loc":"client/src/pages/Certifications.tsx:1214",src:G[w.id],alt:"",className:"w-full h-full object-cover",style:{opacity:.9}})})]}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1218",className:"mt-3 pt-2",style:{borderTop:"1px solid rgba(201,168,76,0.2)"},children:e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1219",className:"flex items-center justify-center gap-1",children:[e.jsx(Y,{"data-loc":"client/src/pages/Certifications.tsx:1220",size:10,style:{color:"#f5e07a"}}),e.jsx("span",{"data-loc":"client/src/pages/Certifications.tsx:1221",className:"text-xs",style:{color:"rgba(245,224,122,0.6)"},children:"HANT 공식 완주 인증"})]})})]}),N&&i?.find(t=>t.id===N)&&e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1228",className:"mb-3",children:[e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1229",className:"text-xs text-muted-foreground mb-2 text-center",children:"다음 구간이 기다리고 있어요!"}),e.jsxs(g,{"data-loc":"client/src/pages/Certifications.tsx:1230",className:"w-full",onClick:()=>{H(null),T(`/courses/${N}`)},children:[e.jsx(Ce,{"data-loc":"client/src/pages/Certifications.tsx:1234",size:14,className:"mr-2"}),N,"구간 시작하기"]})]}),e.jsx(g,{"data-loc":"client/src/pages/Certifications.tsx:1239",variant:"outline",className:"w-full",onClick:()=>H(null),children:"닫기"})]})})}),e.jsx(Z,{"data-loc":"client/src/pages/Certifications.tsx:1247",open:ee,onOpenChange:()=>$(!1),children:e.jsx(J,{"data-loc":"client/src/pages/Certifications.tsx:1248",className:"max-w-sm mx-auto text-center",children:e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1249",className:"py-4",children:[e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1250",className:"w-24 h-24 rounded-full bg-yellow-100 flex items-center justify-center mx-auto mb-4",children:e.jsx(ue,{"data-loc":"client/src/pages/Certifications.tsx:1251",size:48,className:"text-yellow-500"})}),e.jsx("div",{"data-loc":"client/src/pages/Certifications.tsx:1253",className:"flex justify-center gap-1 mb-3",children:[...Array(5)].map((t,a)=>e.jsx(Fe,{"data-loc":"client/src/pages/Certifications.tsx:1254",size:16,className:"text-yellow-400"},a))}),e.jsx("h2",{"data-loc":"client/src/pages/Certifications.tsx:1256",className:"text-2xl font-bold text-foreground mb-2",children:"HANT 전 구간 완주!"}),e.jsxs("p",{"data-loc":"client/src/pages/Certifications.tsx:1257",className:"text-muted-foreground text-sm mb-4",children:["해남 땅끝 → 고성 946km",e.jsx("br",{"data-loc":"client/src/pages/Certifications.tsx:1258"}),"34개 구간 전체를 완주하셨습니다!"]}),e.jsxs("div",{"data-loc":"client/src/pages/Certifications.tsx:1261",className:"bg-yellow-50 rounded-xl p-4 mb-5 border border-yellow-200",children:[e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1262",className:"font-bold text-yellow-800 text-sm",children:"🌟 HANT 완주자 인증서를 다운로드하세요"}),e.jsx("p",{"data-loc":"client/src/pages/Certifications.tsx:1263",className:"text-xs text-yellow-700 mt-1",children:"완주 인증 목록에서 인증서를 발급받으세요"})]}),e.jsx(g,{"data-loc":"client/src/pages/Certifications.tsx:1265",className:"w-full",onClick:()=>$(!1),children:"확인"})]})})}),e.jsx(Z,{"data-loc":"client/src/pages/Certifications.tsx:1273",open:!!I,onOpenChange:()=>k(null),children:I&&e.jsx(Ve,{"data-loc":"client/src/pages/Certifications.tsx:1275",completion:I,userName:u?.name??"트레일러",onClose:()=>k(null),onAppeal:()=>j(I)})}),e.jsx(Z,{"data-loc":"client/src/pages/Certifications.tsx:1285",open:!!y,onOpenChange:()=>j(null),children:y&&e.jsx(Ue,{"data-loc":"client/src/pages/Certifications.tsx:1287",completion:y,onClose:()=>j(null)})})]})}export{gt as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.