import 'package:flutter/material.dart'; // ๐Ÿ“… ์„ ์ƒ๋‹˜ ํ˜ธ์ถœ ํ™”๋ฉด์—์„œ "์ง€๊ธˆ ์ˆ˜์—… ์ค‘" ๋ฐฐ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„ํ‘œ ๋ฐ์ดํ„ฐ. // ์›๋ž˜ ๋ณ„๋„ Firebase ํŽ˜์ด์ง€(index.html)์— ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์˜ฎ๊ธฐ๋ฉด์„œ, // "๊น€์ง€" ์•ฝ์–ด๊ฐ€ ์‹ค์ œ๋กœ๋Š” ์กฐ์‹ ํ˜„ ์„ ์ƒ๋‹˜์„ ๊ฐ€๋ฆฌํ‚ค๋˜ ์˜คํƒ€๋ฅผ "์กฐ์‹ "์œผ๋กœ ๋ฐ”๋กœ์žก์•˜๋‹ค. // (๋‹ค๋ฅธ ๋ชจ๋“  ์•ฝ์–ด๋Š” ์ด๋ฆ„ ์•ž ๋‘ ๊ธ€์ž ๊ทœ์น™์„ ๋”ฐ๋ฅด๋Š”๋ฐ ์ด๊ฒƒ๋งŒ ๊นจ์ ธ ์žˆ์—ˆ์Œ) class PeriodTime { final int period; final String start; final String end; const PeriodTime(this.period, this.start, this.end); } const List kPeriodSettings = [ PeriodTime(1, "08:40", "09:30"), PeriodTime(2, "09:40", "10:30"), PeriodTime(3, "10:40", "11:30"), PeriodTime(4, "11:40", "12:30"), PeriodTime(5, "13:30", "14:20"), PeriodTime(6, "14:30", "15:20"), PeriodTime(7, "15:30", "16:20"), ]; // ์ด๋ฆ„ ์•ž ๋‘ ๊ธ€์ž ์•ฝ์–ด โ†’ ์ „์ฒด ์ด๋ฆ„. ("์กฐ์‹ ":"์กฐ์‹ ํ˜„" ์œผ๋กœ ์ˆ˜์ •๋จ - ์›๋ž˜ "๊น€์ง€"์˜€๋˜ ์˜คํƒ€) const Map kTeacherAbbrevMap = { "์†๊ณ„": "์†๊ณ„๊ฐ•", "์กฐ์‹ ": "์กฐ์‹ ํ˜„", "์ง„๊ฒฝ": "์ง„๊ฒฝ์•„", "๊น€๋งŒ": "๊น€๋งŒ์ค‘", "์ด๊ธธ": "์ด๊ธธ์„", "๊น€ํšจ": "๊น€ํšจ์ •", "์ด๋ถ€": "์ด๋ถ€์›", "๊ณ ๊ฒฝ": "๊ณ ๊ฒฝ์ฒ ", "๊น€๊ฒฝ": "๊น€๊ฒฝ์›", "์–‘์„ฑ": "์–‘์„ฑ์šฑ", "๊น€๋ช…": "๊น€๋ช…์„ ", "๊น€ํ˜„": "๊น€ํ˜„์ง„", "๋ฐ•์€": "๋ฐ•์€ํ˜ธ", "์‹ฌ์œค": "์‹ฌ์œค์ฃผ", "์กฐ์˜": "์กฐ์˜ํฌ", "์ด์ •": "์ด์ •์ƒ", "์กฐ์šฉ": "์กฐ์šฉ์šฐ", "์ด๋ฏผ": "์ด๋ฏผํ˜", }; // day: 1=์›” ~ 5=๊ธˆ, period: 1~7. ๊ฐ’์€ ๊ทธ ์‹œ๊ฐ„์— ์ˆ˜์—… ์ค‘์ธ ์„ ์ƒ๋‹˜ ์•ฝ์–ด ๋ชฉ๋ก. const Map>> kFullTimetable = { 1: { 1: ["์†๊ณ„", "์กฐ์‹ ", "์ง„๊ฒฝ", "๊น€๋งŒ", "์ด๊ธธ", "๊น€ํšจ", "์ด๋ถ€"], 2: ["๊น€๊ฒฝ", "์†๊ณ„", "์ด๊ธธ", "์กฐ์˜", "๊น€ํšจ", "์–‘์„ฑ", "๊น€๋ช…", "๊น€ํ˜„"], 3: ["๋ฐ•์€", "์‹ฌ์œค", "์กฐ์˜", "๊ณ ๊ฒฝ", "์ด์ •", "์ด๋ถ€", "๊น€๊ฒฝ"], 4: ["์‹ฌ์œค", "์ง„๊ฒฝ", "๊น€ํšจ", "์ด๊ธธ", "์ด์ •", "๊น€๋งŒ", "๊น€๋ช…", "๊น€ํ˜„", "์–‘์„ฑ"], 5: ["๋ฐ•์€", "์†๊ณ„", "์ด์ •", "๊ณ ๊ฒฝ", "์กฐ์˜", "๊น€ํ˜„", "์–‘์„ฑ", "๊น€๋ช…"], 6: ["์ด๋ฏผ", "์‹ฌ์œค", "๊ณ ๊ฒฝ", "๊น€๋งŒ", "์ด๊ธธ", "์ด๋ถ€", "๊น€๊ฒฝ"], 7: ["์ด๋ฏผ", "๊น€๊ฒฝ", "๋ฐ•์€", "๊น€๋งŒ", "์ด๊ธธ", "์กฐ์˜", "์–‘์„ฑ", "์กฐ์‹ ", "์†๊ณ„"], }, 2: { 1: ["์†๊ณ„", "์ด์ •", "๋ฐ•์€", "๊น€๋งŒ", "์‹ฌ์œค", "์ด๊ธธ", "์กฐ์˜", "๊น€ํ˜„", "์กฐ์‹ ", "์–‘์„ฑ"], 2: ["๊น€ํšจ", "๊น€๊ฒฝ", "์ด์ •", "๊ณ ๊ฒฝ", "์กฐ์˜", "๊น€๋งŒ", "์–‘์„ฑ", "๊น€ํ˜„", "๊น€๋ช…"], 3: ["์ง„๊ฒฝ", "์‹ฌ์œค", "์†๊ณ„", "์ด๋ฏผ", "์ด๋ถ€", "๊น€๋ช…", "์กฐ์šฉ", "์กฐ์‹ "], 4: ["์ด์ •", "์ง„๊ฒฝ", "๊น€ํšจ", "์ด๋ฏผ", "์ด๋ถ€", "์กฐ์šฉ", "์–‘์„ฑ", "๊น€ํ˜„"], 5: ["๋ฐ•์€", "๊น€ํšจ", "์‹ฌ์œค", "์ด๋ฏผ", "์ด๋ถ€", "๊น€๋ช…", "๊น€ํ˜„", "์†๊ณ„"], 6: ["๊น€๊ฒฝ", "๋ฐ•์€", "์ง„๊ฒฝ", "์ด๋ฏผ", "์ด๋ถ€", "์–‘์„ฑ", "๊น€๋ช…", "์กฐ์šฉ"], 7: ["์ง„๊ฒฝ", "์†๊ณ„", "์ด๋ถ€", "๊น€๋งŒ", "์ด๊ธธ", "๊น€ํšจ", "๋ฐ•์€", "๊น€๊ฒฝ", "๊น€ํ˜„"], }, 3: { 1: ["๊น€ํšจ", "๊น€๊ฒฝ", "์ด๋ฏผ", "์ด๋ถ€", "๊น€๋ช…", "๊น€ํ˜„", "์ด์ •"], 2: ["์กฐ์šฉ", "์ง„๊ฒฝ", "๊น€ํšจ", "์กฐ์˜", "๊น€๋งŒ", "์ด๊ธธ", "์ด๋ถ€", "๊ณ ๊ฒฝ"], 3: ["์‹ฌ์œค", "์†๊ณ„", "์กฐ์šฉ", "์ด๋ฏผ", "๋ฐ•์€", "์กฐ์‹ ", "์–‘์„ฑ", "์ด์ •", "๊น€๋ช…"], 4: ["์ง„๊ฒฝ", "๊น€ํšจ", "์‹ฌ์œค", "์ด๋ฏผ", "๋ฐ•์€", "์กฐ์‹ ", "์ด์ •", "์–‘์„ฑ", "๊น€ํ˜„"], }, 4: { 1: ["์‹ฌ์œค", "๊น€๊ฒฝ", "์กฐ์‹ ", "์กฐ์˜", "์ด๊ธธ", "๊น€๋งŒ", "์ด์ •", "์–‘์„ฑ", "๊น€๋ช…"], 2: ["๋ฐ•์€", "์ง„๊ฒฝ", "๊น€๋งŒ", "์‹ฌ์œค", "์ด๊ธธ", "์กฐ์˜", "์ด๋ถ€", "๊ณ ๊ฒฝ"], 3: ["์ง„๊ฒฝ", "๊น€ํšจ", "์ด๋ฏผ", "์ด๋ถ€", "๊น€ํ˜„", "๊น€๋ช…", "์ด์ •"], 4: ["์†๊ณ„", "๊น€ํšจ", "๊น€๊ฒฝ", "์ด๋ฏผ", "๋ฐ•์€", "์กฐ์‹ ", "์–‘์„ฑ", "์ด์ •", "๊น€ํ˜„"], 5: ["์กฐ์‹ ", "์ง„๊ฒฝ", "์‹ฌ์œค", "๊น€๋งŒ", "๊ณ ๊ฒฝ", "์กฐ์˜", "์ด๋ถ€", "์ด๋ฏผ"], 6: ["๊น€๊ฒฝ", "์‹ฌ์œค", "์†๊ณ„", "์ด๊ธธ", "์กฐ์˜", "๊น€ํšจ", "๋ฐ•์€", "์ง„๊ฒฝ", "์กฐ์‹ "], 7: ["๊น€ํšจ", "์†๊ณ„", "๋ฐ•์€", "๊ณ ๊ฒฝ", "๊น€๋งŒ", "์ด๊ธธ", "๊น€ํ˜„", "๊น€๋ช…", "์–‘์„ฑ"], }, 5: { 1: ["์†๊ณ„", "๋ฐ•์€", "์ด์ •", "๊น€๋งŒ", "์กฐ์˜", "์ด๊ธธ", "๊น€ํ˜„", "๊น€๋ช…", "์–‘์„ฑ"], 2: ["์ด์ •", "์†๊ณ„", "๊น€๊ฒฝ", "์ด๊ธธ", "๊ณ ๊ฒฝ", "์กฐ์˜", "๊น€๋ช…", "์กฐ์‹ ", "๊น€ํ˜„"], 3: ["์ง„๊ฒฝ", "์‹ฌ์œค", "์กฐ์šฉ", "๊ณ ๊ฒฝ", "๊น€๋งŒ", "๊น€ํšจ", "์ด๋ถ€", "๊น€๊ฒฝ"], 4: ["์กฐ์šฉ", "์ด์ •", "์ง„๊ฒฝ", "๊น€๋งŒ", "์‹ฌ์œค", "์ด๊ธธ", "์กฐ์˜", "์–‘์„ฑ", "๊น€ํ˜„", "๊น€๋ช…"], 5: ["์ง„๊ฒฝ", "์†๊ณ„", "์ด๋ถ€", "์กฐ์šฉ", "์กฐ์‹ ", "๊ณ ๊ฒฝ", "๋ฐ•์€", "๊น€๊ฒฝ", "๊น€ํ˜„"], 7: ["๊น€ํšจ", "์กฐ์šฉ", "์†๊ณ„", "์กฐ์˜", "์ด๊ธธ", "๊น€๋งŒ", "์ด๋ถ€", "๊ณ ๊ฒฝ"], }, }; /// ์ง€๊ธˆ ์ด ์ˆœ๊ฐ„(day: 1~5, HH:mm) ์ˆ˜์—… ์ค‘์ธ ์„ ์ƒ๋‹˜ ์ „์ฒด ์ด๋ฆ„ ๋ชฉ๋ก. ์ฃผ๋ง/์‰ฌ๋Š”์‹œ๊ฐ„์ด๋ฉด ๋นˆ ๋ชฉ๋ก. List teachersInClassNow(int weekday, String hhmm) { if (weekday < 1 || weekday > 5) return []; PeriodTime? current; for (final p in kPeriodSettings) { if (hhmm.compareTo(p.start) >= 0 && hhmm.compareTo(p.end) <= 0) { current = p; break; } } if (current == null) return []; final abbrevs = kFullTimetable[weekday]?[current.period] ?? []; return abbrevs.map((a) => kTeacherAbbrevMap[a]).whereType().toList(); } const Map kLocationIcons = { "๊ต๋ฌด์‹ค": Icons.business_rounded, "๊ธ‰์‹์‹ค": Icons.restaurant_rounded, "๊ณผํ•™์‹ค": Icons.science_rounded, "๋„์„œ๊ด€": Icons.menu_book_rounded, "์ถœ์žฅ": Icons.directions_car_rounded, "์กฐํ‡ด/ํ‡ด๊ทผ": Icons.home_rounded, "์ƒ๋‹ด์‹ค": Icons.forum_rounded, "๊ธฐ์ˆ™์‚ฌ": Icons.hotel_rounded, }; const List kLocationOptions = [ "๊ต๋ฌด์‹ค", "๊ธ‰์‹์‹ค", "๊ณผํ•™์‹ค", "๋„์„œ๊ด€", "์ถœ์žฅ", "์กฐํ‡ด/ํ‡ด๊ทผ", "์ƒ๋‹ด์‹ค", "๊ธฐ์ˆ™์‚ฌ", ]; const List kCallPurposes = [ "๊ฐ„๋‹จํ•œ ์šฉ๋ฌด", "์งˆ๋ฌธ ์žˆ์–ด์š”", "์ƒ๋‹ด ์‹ ์ฒญ", "๊ณผ์ œ ์ œ์ถœ", "๋ฌผ๊ฑด ์ „๋‹ฌ", ];