import 'package:flutter/material.dart'; import 'package:hive/hive.dart'; import 'package:syncfusion_flutter_calendar/calendar.dart'; // flutter packages pub run build_runner build part 'calendar.g.dart'; @HiveType(typeId: 3) class Calendar extends HiveObject { @HiveField(0) late int id; @HiveField(1) late String title; @HiveField(2) late DateTime? startTime; @HiveField(3) late DateTime? endTime; @HiveField(4) late DateTime? scheduledTime; @HiveField(5) late DateTime createTime; @HiveField(6) late DateTime updateTime; Calendar({ int? id, required this.title, required this.startTime, required this.endTime, this.scheduledTime, DateTime? createTime, DateTime? updateTime, }) { // 简单时间戳ID this.id = id ?? DateTime.now().millisecondsSinceEpoch ~/ 1000; this.createTime = createTime ?? DateTime.now(); this.updateTime = updateTime ?? DateTime.now(); } static Calendar getEmpty() { return Calendar( id: DateTime.now().millisecondsSinceEpoch ~/ 1000, title: '', startTime: null, endTime: null, scheduledTime: null, ); } } enum CalendarTab { week('周视图', CalendarView.week), month('月视图', CalendarView.month), schedule('日程视图', CalendarView.schedule); final String label; final CalendarView view; const CalendarTab(this.label, this.view); }