Files
flisp_app/lib/models/calendar.dart

67 lines
1.4 KiB
Dart

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