- **Frontend (Flutter)**
- Optimize for Google TV: Force Landscape mode, disable touchscreen requirement, and set TV Dashboard as default home.
- Weather Widget:
- Add Daily Max/Min temperature ('최고/최저').
- Add Air Quality Index (AQI) with visual indicator ('미세먼지').
- Increase font sizes and adjust layout to match Digital Clock style.
- Implement 1-hour auto-refresh timer.
- Model: Update WeatherInfo to support tempMin, tempMax, and aqi.
- **Backend (Node.js)**
- Weather API (/api/weather):
- Implement daily forecast aggregation logic (Seoul Time KST) to calculate accurate daily High/Low.
- Integrate OpenWeatherMap Air Pollution API to fetch AQI.
157 lines
3.6 KiB
Dart
157 lines
3.6 KiB
Dart
import "../models/announcement.dart";
|
|
import "../models/bible_verse.dart";
|
|
import "../models/family_member.dart";
|
|
import "../models/photo.dart";
|
|
import "../models/schedule_item.dart";
|
|
import "../models/todo_item.dart";
|
|
import "../models/weather_info.dart";
|
|
|
|
class MockDataStore {
|
|
static final List<FamilyMember> familyMembers = [
|
|
const FamilyMember(
|
|
id: "family-1",
|
|
name: "Dad",
|
|
iconUrl: "",
|
|
emoji: "",
|
|
color: "#0F766E",
|
|
order: 1,
|
|
),
|
|
const FamilyMember(
|
|
id: "family-2",
|
|
name: "Mom",
|
|
iconUrl: "",
|
|
emoji: "",
|
|
color: "#C2410C",
|
|
order: 2,
|
|
),
|
|
const FamilyMember(
|
|
id: "family-3",
|
|
name: "Son",
|
|
iconUrl: "",
|
|
emoji: "",
|
|
color: "#1D4ED8",
|
|
order: 3,
|
|
),
|
|
const FamilyMember(
|
|
id: "family-4",
|
|
name: "Daughter",
|
|
iconUrl: "",
|
|
emoji: "",
|
|
color: "#7C3AED",
|
|
order: 4,
|
|
),
|
|
];
|
|
|
|
static final List<TodoItem> todos = [
|
|
TodoItem(
|
|
id: "todo-1",
|
|
familyMemberId: "family-1",
|
|
title: "Grocery run",
|
|
completed: false,
|
|
dueDate: DateTime.now(),
|
|
),
|
|
TodoItem(
|
|
id: "todo-2",
|
|
familyMemberId: "family-2",
|
|
title: "Team meeting",
|
|
completed: false,
|
|
dueDate: DateTime.now(),
|
|
),
|
|
TodoItem(
|
|
id: "todo-3",
|
|
familyMemberId: "family-3",
|
|
title: "Math homework",
|
|
completed: false,
|
|
dueDate: DateTime.now(),
|
|
),
|
|
TodoItem(
|
|
id: "todo-4",
|
|
familyMemberId: "family-4",
|
|
title: "Piano lesson",
|
|
completed: false,
|
|
dueDate: DateTime.now().add(const Duration(days: 1)),
|
|
),
|
|
];
|
|
|
|
static final List<ScheduleItem> schedules = [
|
|
ScheduleItem(
|
|
id: "schedule-1",
|
|
title: "Family dinner",
|
|
description: "Everyone at home",
|
|
startDate: DateTime.now(),
|
|
endDate: DateTime.now().add(const Duration(hours: 2)),
|
|
familyMemberId: "family-1",
|
|
isAllDay: false,
|
|
),
|
|
ScheduleItem(
|
|
id: "schedule-2",
|
|
title: "Soccer practice",
|
|
description: "School field",
|
|
startDate: DateTime.now().add(const Duration(hours: 3)),
|
|
endDate: DateTime.now().add(const Duration(hours: 4)),
|
|
familyMemberId: "family-3",
|
|
isAllDay: false,
|
|
),
|
|
];
|
|
|
|
static final List<Announcement> announcements = [
|
|
const Announcement(
|
|
id: "announcement-1",
|
|
title: "Weekend trip",
|
|
content: "Pack light and be ready by 8 AM",
|
|
priority: 2,
|
|
active: true,
|
|
),
|
|
const Announcement(
|
|
id: "announcement-2",
|
|
title: "Trash day",
|
|
content: "Take out bins tonight",
|
|
priority: 1,
|
|
active: true,
|
|
),
|
|
];
|
|
|
|
static final List<Photo> photos = [
|
|
const Photo(
|
|
id: "photo-1",
|
|
url: "https://picsum.photos/1200/800?random=21",
|
|
caption: "Summer vacation",
|
|
active: true,
|
|
),
|
|
const Photo(
|
|
id: "photo-2",
|
|
url: "https://picsum.photos/1200/800?random=22",
|
|
caption: "Family hike",
|
|
active: true,
|
|
),
|
|
const Photo(
|
|
id: "photo-3",
|
|
url: "https://picsum.photos/1200/800?random=23",
|
|
caption: "Birthday party",
|
|
active: true,
|
|
),
|
|
];
|
|
|
|
static WeatherInfo weather = const WeatherInfo(
|
|
description: "clear sky",
|
|
temperature: 12,
|
|
tempMin: 8,
|
|
tempMax: 15,
|
|
aqi: 2,
|
|
icon: "01d",
|
|
city: "Seoul",
|
|
);
|
|
|
|
static final List<BibleVerse> bibleVerses = [
|
|
const BibleVerse(
|
|
id: "bible-1",
|
|
text: "여호와를 경외하는 것이 지식의 근본이니라.",
|
|
reference: "잠언 1:7",
|
|
date: null,
|
|
active: true,
|
|
),
|
|
];
|
|
|
|
static BibleVerse bible = bibleVerses.first;
|
|
}
|