CarboAny / src /data /mockActivityData.ts
Esketch's picture
deploy: [P4] Strangler Pattern API Adapter Release (Orphan Clean Build v2)
daaf9d7
Raw
History Blame Contribute Delete
11.8 kB
import type { UploadedFile, ActivityDataRow, ValidationError } from '../types';
/* ─── μ—…λ‘œλ“œ 파일 이λ ₯ ─── */
export const mockUploadedFiles: UploadedFile[] = [
{
id: 'uf-001',
fileName: 'μ„œμšΈμ‹œ_λ‹€νšŒμš©κΈ°_202603.csv',
organization: 'μ„œμšΈνŠΉλ³„μ‹œ',
uploadedAt: '2026-04-14 09:32',
rows: 1847,
validationStatus: 'valid',
errors: 0,
warnings: 2,
fileSize: '2.4 MB',
validationStep: 5,
matchedMethodology: 'CDM-AMS-III.AJ',
totalCo2Reduction: 12.45,
},
{
id: 'uf-002',
fileName: 'μ„Έμ’…μ‹œ_μžμ „κ±°μΆœν‡΄κ·Ό_202603.csv',
organization: 'μ„Έμ’…νŠΉλ³„μžμΉ˜μ‹œ',
uploadedAt: '2026-04-14 08:10',
rows: 3240,
validationStatus: 'valid',
errors: 0,
warnings: 0,
fileSize: '4.1 MB',
validationStep: 5,
matchedMethodology: 'CDM-AMS-III.C',
totalCo2Reduction: 6.82,
},
{
id: 'uf-003',
fileName: 'κ·Έλ¦°λ§ˆμΌ“_에코백_202603.xlsx',
organization: '(μ£Ό)κ·Έλ¦°λ§ˆμΌ“',
uploadedAt: '2026-04-13 14:20',
rows: 423,
validationStatus: 'validating',
errors: 1,
warnings: 3,
fileSize: '0.8 MB',
validationStep: 3,
matchedMethodology: 'K-VER-Waste',
},
{
id: 'uf-004',
fileName: 'ν•œκ΅­μ—λ„ˆμ§€κ³΅λ‹¨_μ ˆμ „_202603.xlsx',
organization: 'ν•œκ΅­μ—λ„ˆμ§€κ³΅λ‹¨',
uploadedAt: '2026-04-13 11:05',
rows: 562,
validationStatus: 'valid',
errors: 0,
warnings: 1,
fileSize: '1.2 MB',
validationStep: 5,
matchedMethodology: 'K-VER-Energy',
totalCo2Reduction: 4.87,
},
{
id: 'uf-005',
fileName: 'ν•œν™”μ†”λ£¨μ…˜_νƒœμ–‘κ΄‘_202603.xlsx',
organization: 'ν•œν™”μ†”λ£¨μ…˜',
uploadedAt: '2026-04-12 16:45',
rows: 340,
validationStatus: 'invalid',
errors: 8,
warnings: 5,
fileSize: '0.6 MB',
validationStep: 2,
},
];
/* ─── νŒŒμΌλ³„ ν™œλ™ 데이터 ν–‰ ─── */
export const mockActivityRows: ActivityDataRow[] = [
// uf-001: μ„œμšΈμ‹œ λ‹€νšŒμš©κΈ°
{ id: 'ar-001', fileId: 'uf-001', rowNumber: 1, date: '2026-03-01', category: '폐기물', activity: 'λ‹€νšŒμš©κΈ° μ‚¬μš© (ν…€λΈ”λŸ¬)', quantity: 312, unit: '회', co2Reduction: 0.062, status: 'valid', matchedMethodology: 'CDM-AMS-III.AJ' },
{ id: 'ar-002', fileId: 'uf-001', rowNumber: 2, date: '2026-03-02', category: '폐기물', activity: 'λ‹€νšŒμš©κΈ° μ‚¬μš© (λ„μ‹œλ½ν†΅)', quantity: 287, unit: '회', co2Reduction: 0.057, status: 'valid', matchedMethodology: 'CDM-AMS-III.AJ' },
{ id: 'ar-003', fileId: 'uf-001', rowNumber: 3, date: '2026-03-03', category: '폐기물', activity: 'λ‹€νšŒμš©κΈ° μ‚¬μš© (ν…€λΈ”λŸ¬)', quantity: 345, unit: '회', co2Reduction: 0.068, status: 'valid', matchedMethodology: 'CDM-AMS-III.AJ' },
{ id: 'ar-004', fileId: 'uf-001', rowNumber: 4, date: '2026-03-04', category: '폐기물', activity: 'λ‹€νšŒμš©κΈ° μ‚¬μš© (에코백)', quantity: 198, unit: '회', co2Reduction: 0.039, status: 'valid', matchedMethodology: 'CDM-AMS-III.AJ', note: 'μ‹œμž₯ 행사일 β€” μ°Έμ—¬μž κ°μ†Œ' },
{ id: 'ar-005', fileId: 'uf-001', rowNumber: 5, date: '2026-03-05', category: '폐기물', activity: 'λ‹€νšŒμš©κΈ° μ‚¬μš© (ν…€λΈ”λŸ¬)', quantity: 401, unit: '회', co2Reduction: 0.079, status: 'valid', matchedMethodology: 'CDM-AMS-III.AJ' },
// uf-002: μ„Έμ’…μ‹œ μžμ „κ±°
{ id: 'ar-006', fileId: 'uf-002', rowNumber: 1, date: '2026-03-01', category: 'ꡐ톡', activity: 'μžμ „κ±° μΆœν‡΄κ·Ό', quantity: 4520, unit: 'km', co2Reduction: 0.633, status: 'valid', matchedMethodology: 'CDM-AMS-III.C' },
{ id: 'ar-007', fileId: 'uf-002', rowNumber: 2, date: '2026-03-02', category: 'ꡐ톡', activity: 'μžμ „κ±° μΆœν‡΄κ·Ό', quantity: 4380, unit: 'km', co2Reduction: 0.613, status: 'valid', matchedMethodology: 'CDM-AMS-III.C' },
{ id: 'ar-008', fileId: 'uf-002', rowNumber: 3, date: '2026-03-03', category: 'ꡐ톡', activity: 'μžμ „κ±° μΆœν‡΄κ·Ό', quantity: 3890, unit: 'km', co2Reduction: 0.545, status: 'valid', matchedMethodology: 'CDM-AMS-III.C' },
{ id: 'ar-009', fileId: 'uf-002', rowNumber: 4, date: '2026-03-04', category: 'ꡐ톡', activity: 'μžμ „κ±° μΆœν‡΄κ·Ό', quantity: 4210, unit: 'km', co2Reduction: 0.589, status: 'valid', matchedMethodology: 'CDM-AMS-III.C' },
{ id: 'ar-010', fileId: 'uf-002', rowNumber: 5, date: '2026-03-05', category: 'ꡐ톡', activity: 'μžμ „κ±° μΆœν‡΄κ·Ό', quantity: 4640, unit: 'km', co2Reduction: 0.650, status: 'valid', matchedMethodology: 'CDM-AMS-III.C' },
// uf-003: κ·Έλ¦°λ§ˆμΌ“ 에코백
{ id: 'ar-011', fileId: 'uf-003', rowNumber: 1, date: '2026-03-01', category: '폐기물', activity: '에코백/μž₯λ°”κ΅¬λ‹ˆ μ‚¬μš©', quantity: 85, unit: '회', co2Reduction: 0.017, status: 'valid', matchedMethodology: 'K-VER-Waste' },
{ id: 'ar-012', fileId: 'uf-003', rowNumber: 2, date: '2026-03-02', category: '폐기물', activity: '에코백/μž₯λ°”κ΅¬λ‹ˆ μ‚¬μš©', quantity: 92, unit: '회', co2Reduction: 0.018, status: 'valid', matchedMethodology: 'K-VER-Waste' },
{ id: 'ar-013', fileId: 'uf-003', rowNumber: 3, date: '2026-03-03', category: '폐기물', activity: '에코백/μž₯λ°”κ΅¬λ‹ˆ μ‚¬μš©', quantity: -5, unit: '회', co2Reduction: 0.0, status: 'invalid', matchedMethodology: 'K-VER-Waste', note: 'μŒμˆ˜κ°’ β€” 데이터 였λ₯˜' },
{ id: 'ar-014', fileId: 'uf-003', rowNumber: 4, date: '2026-03-04', category: '폐기물', activity: '에코백/μž₯λ°”κ΅¬λ‹ˆ μ‚¬μš©', quantity: 78, unit: '회', co2Reduction: 0.015, status: 'validating', matchedMethodology: 'K-VER-Waste' },
// uf-004: ν•œκ΅­μ—λ„ˆμ§€κ³΅λ‹¨ μ ˆμ „
{ id: 'ar-015', fileId: 'uf-004', rowNumber: 1, date: '2026-03-01', category: 'μ—λ„ˆμ§€', activity: 'LED ꡐ체 절감', quantity: 34200, unit: 'kWh', co2Reduction: 15.72, status: 'valid', matchedMethodology: 'K-VER-Energy' },
{ id: 'ar-016', fileId: 'uf-004', rowNumber: 2, date: '2026-03-08', category: 'μ—λ„ˆμ§€', activity: 'λŒ€κΈ°μ „λ ₯ 차단', quantity: 12800, unit: 'kWh', co2Reduction: 5.88, status: 'valid', matchedMethodology: 'K-VER-Energy' },
{ id: 'ar-017', fileId: 'uf-004', rowNumber: 3, date: '2026-03-15', category: 'μ—λ„ˆμ§€', activity: '고효율 κΈ°κΈ° ꡐ체', quantity: 18500, unit: 'kWh', co2Reduction: 8.50, status: 'valid', matchedMethodology: 'K-VER-Energy' },
// uf-005: ν•œν™”μ†”λ£¨μ…˜ νƒœμ–‘κ΄‘ (였λ₯˜ λ‹€μˆ˜)
{ id: 'ar-018', fileId: 'uf-005', rowNumber: 1, date: '2026-03-01', category: 'μ—λ„ˆμ§€', activity: 'νƒœμ–‘κ΄‘ μžκ°€λ°œμ „', quantity: 5600, unit: 'kWh', co2Reduction: 2.77, status: 'valid', matchedMethodology: 'GS-PWR-v3.2' },
{ id: 'ar-019', fileId: 'uf-005', rowNumber: 2, date: '2026-03-02', category: 'μ—λ„ˆμ§€', activity: 'νƒœμ–‘κ΄‘ μžκ°€λ°œμ „', quantity: 0, unit: 'kWh', co2Reduction: 0.0, status: 'invalid', note: 'λ°œμ „λŸ‰ 0 β€” μ„Όμ„œ 였λ₯˜ μ˜μ‹¬' },
{ id: 'ar-020', fileId: 'uf-005', rowNumber: 3, date: '2026-03-03', category: 'μ—λ„ˆμ§€', activity: 'νƒœμ–‘κ΄‘ μžκ°€λ°œμ „', quantity: -1200, unit: 'kWh', co2Reduction: -0.59, status: 'invalid', note: 'COβ‚‚ κ°μΆ•λŸ‰ 음수 β€” 데이터 μ—­μ „' },
{ id: 'ar-021', fileId: 'uf-005', rowNumber: 4, date: '', category: 'μ—λ„ˆμ§€', activity: 'νƒœμ–‘κ΄‘ μžκ°€λ°œμ „', quantity: 4800, unit: 'kWh', co2Reduction: 2.38, status: 'invalid', note: 'λ‚ μ§œ λˆ„λ½' },
];
/* ─── 검증 였λ₯˜/κ²½κ³  상세 ─── */
export const mockValidationErrors: ValidationError[] = [
// uf-001 (warnings only)
{ id: 've-001', fileId: 'uf-001', rowNumber: 847, field: 'quantity', severity: 'warning', message: 'μˆ˜λŸ‰ μ΄μƒμΉ˜: 일일 평균 λŒ€λΉ„ 3Οƒ 초과 (1,205회)', suggestion: '데이터 확인 ν›„ μˆ˜λ™ 승인 κ°€λŠ₯' },
{ id: 've-002', fileId: 'uf-001', rowNumber: 1203, field: 'date', severity: 'warning', message: 'λ‚ μ§œ μˆœμ„œ 비정상: 이전 행보닀 이전 λ‚ μ§œ', suggestion: 'ν–‰ μ •λ ¬ ν›„ μž¬μ—…λ‘œλ“œ ꢌμž₯' },
// uf-003 (1 error + 3 warnings)
{ id: 've-003', fileId: 'uf-003', rowNumber: 3, field: 'quantity', severity: 'error', message: 'μˆ˜λŸ‰ μŒμˆ˜κ°’ (-5) β€” 0 이상이어야 ν•©λ‹ˆλ‹€', suggestion: 'μ ˆλŒ€κ°’ λ˜λŠ” μ˜¬λ°”λ₯Έ μˆ˜λŸ‰μœΌλ‘œ μˆ˜μ • ν•„μš”' },
{ id: 've-004', fileId: 'uf-003', rowNumber: 156, field: 'unit', severity: 'warning', message: 'λ‹¨μœ„ 뢈일치: "건" β†’ ν‘œμ€€ λ‹¨μœ„ "회"둜 μžλ™ λ³€ν™˜λ¨', suggestion: '원본 λ°μ΄ν„°μ˜ λ‹¨μœ„ ν‘œκΈ° 톡일 ꢌμž₯' },
{ id: 've-005', fileId: 'uf-003', rowNumber: 289, field: 'quantity', severity: 'warning', message: 'μˆ˜λŸ‰ μ΄μƒμΉ˜: 일일 평균 λŒ€λΉ„ 2.5Οƒ 초과 (420회)', suggestion: '이벀트 κΈ°κ°„ 데이터인지 확인' },
{ id: 've-006', fileId: 'uf-003', rowNumber: 401, field: 'date', severity: 'warning', message: '주말 데이터: μΌμš”μΌ(03-10) 기둝 β€” μ‹œμž₯ 휴무일 확인', suggestion: 'νŠΉλ³„ μ˜μ—…μΌμ΄λ©΄ λ¬΄μ‹œ κ°€λŠ₯' },
// uf-004 (1 warning)
{ id: 've-007', fileId: 'uf-004', rowNumber: 412, field: 'co2Reduction', severity: 'warning', message: 'κ°μΆ•λŸ‰ μƒν•œ 초과: 단일 ν–‰ 45.2t β€” 일반 λ²”μœ„(0.01~20t) 초과', suggestion: '집계 데이터인지 확인, λΆ„ν•  기둝 ꢌμž₯' },
// uf-005 (8 errors + 5 warnings)
{ id: 've-008', fileId: 'uf-005', rowNumber: 2, field: 'quantity', severity: 'error', message: 'λ°œμ „λŸ‰ 0 kWh β€” 유효 데이터 μ•„λ‹˜', suggestion: 'μ„Όμ„œ 둜그 확인 ν›„ μ˜¬λ°”λ₯Έ κ°’ μž…λ ₯' },
{ id: 've-009', fileId: 'uf-005', rowNumber: 3, field: 'quantity', severity: 'error', message: 'λ°œμ „λŸ‰ 음수 (-1,200 kWh) β€” 물리적 λΆˆκ°€', suggestion: 'μ–‘μˆ˜κ°’μœΌλ‘œ μˆ˜μ • ν•„μš”' },
{ id: 've-010', fileId: 'uf-005', rowNumber: 3, field: 'co2Reduction', severity: 'error', message: 'COβ‚‚ κ°μΆ•λŸ‰ 음수 (-0.59t) β€” μ–‘μˆ˜μ—¬μ•Ό ν•©λ‹ˆλ‹€', suggestion: 'μˆ˜λŸ‰ μˆ˜μ • ν›„ μž¬μ‚°μ • ν•„μš”' },
{ id: 've-011', fileId: 'uf-005', rowNumber: 4, field: 'date', severity: 'error', message: 'λ‚ μ§œ ν•„λ“œ λΉ„μ–΄μžˆμŒ β€” ν•„μˆ˜ ν•­λͺ©', suggestion: 'μ •ν™•ν•œ ν™œλ™ λ‚ μ§œ μž…λ ₯ ν•„μš”' },
{ id: 've-012', fileId: 'uf-005', rowNumber: 15, field: 'quantity', severity: 'error', message: 'λ°œμ „λŸ‰ 999,999 kWh β€” 물리적 λΆˆκ°€ (μ„€λΉ„ μš©λŸ‰ 초과)', suggestion: 'μ†Œμˆ˜μ  λ˜λŠ” λ‹¨μœ„ 였λ₯˜ 확인' },
{ id: 've-013', fileId: 'uf-005', rowNumber: 78, field: 'unit', severity: 'error', message: 'λ‹¨μœ„ "MW" β€” 지원 λ‹¨μœ„(kWh) μ•„λ‹˜', suggestion: 'kWh λ‹¨μœ„λ‘œ ν™˜μ‚° ν›„ μž¬μž…λ ₯' },
{ id: 've-014', fileId: 'uf-005', rowNumber: 120, field: 'activity', severity: 'error', message: 'ν™œλ™ μœ ν˜• 미기재 β€” ν•„μˆ˜ ν•­λͺ©', suggestion: 'νƒœμ–‘κ΄‘ μžκ°€λ°œμ „ λ“± ν™œλ™λͺ… μž…λ ₯' },
{ id: 've-015', fileId: 'uf-005', rowNumber: 245, field: 'date', severity: 'error', message: 'λ‚ μ§œ ν˜•μ‹ 였λ₯˜: "3μ›”5일" β†’ "2026-03-05" ν˜•μ‹ ν•„μš”', suggestion: 'ISO 8601 (YYYY-MM-DD) ν˜•μ‹μœΌλ‘œ μˆ˜μ •' },
{ id: 've-016', fileId: 'uf-005', rowNumber: 10, field: 'quantity', severity: 'warning', message: 'λ°œμ „λŸ‰ μ΄μƒμΉ˜: 일일 평균 λŒ€λΉ„ 2.8Οƒ 초과', suggestion: '맑은 λ‚  μ΅œλŒ€ λ°œμ „λŸ‰μΈμ§€ 확인' },
{ id: 've-017', fileId: 'uf-005', rowNumber: 55, field: 'co2Reduction', severity: 'warning', message: 'κ°μΆ•λŸ‰ 0.001t β€” μ΅œμ†Œ 유효 λ‹¨μœ„(0.01t) 미달', suggestion: '집계 κΈ°κ°„ ν™•λŒ€ λ˜λŠ” ν–‰ 병합 ꢌμž₯' },
{ id: 've-018', fileId: 'uf-005', rowNumber: 180, field: 'category', severity: 'warning', message: 'μΉ΄ν…Œκ³ λ¦¬ "μ „λ ₯" β†’ ν‘œμ€€ μΉ΄ν…Œκ³ λ¦¬ "μ—λ„ˆμ§€"둜 μžλ™ 맀핑됨' },
{ id: 've-019', fileId: 'uf-005', rowNumber: 200, field: 'date', severity: 'warning', message: '미래 λ‚ μ§œ (2026-04-15) β€” 보고 κΈ°κ°„(03μ›”) λ²”μœ„ 초과', suggestion: 'μ˜¬λ°”λ₯Έ κΈ°κ°„ 데이터인지 확인' },
{ id: 've-020', fileId: 'uf-005', rowNumber: 310, field: 'quantity', severity: 'warning', message: '쀑볡 μ˜μ‹¬: ν–‰ 309와 동일 λ‚ μ§œ/μˆ˜λŸ‰', suggestion: '이쀑 기둝 μ•„λ‹Œμ§€ 확인' },
];