Files
bini-google-tv/flutter_app/lib/services/mock_data.dart
kihong.kim e2f00c6e21 feat: Enhance TV support and Daily Weather Forecast (w/ Air Quality)
- **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.
2026-01-31 21:19:13 +09:00

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;
}