feat: Add Nanaxe server with Docker, GitHub Actions CI/CD, and auto-deployment
- Add complete server infrastructure with Gitea, API, PostgreSQL - Implement Obsidian-compatible markdown mindmap converter - Add Flutter service for server synchronization - Configure GitHub Actions for automated build and deploy - Add production docker-compose with health checks - Include VPS setup and deployment scripts - Add comprehensive deployment documentation
This commit is contained in:
@@ -35,8 +35,12 @@ class AlarmModel {
|
||||
|
||||
factory AlarmModel.fromFirestore(DocumentSnapshot doc) {
|
||||
final data = doc.data() as Map<String, dynamic>;
|
||||
return AlarmModel.fromMap(doc.id, data);
|
||||
}
|
||||
|
||||
factory AlarmModel.fromMap(String id, Map<String, dynamic> data) {
|
||||
return AlarmModel(
|
||||
id: doc.id,
|
||||
id: id,
|
||||
title: data['title'] ?? '',
|
||||
taskId: data['taskId'],
|
||||
eventId: data['eventId'],
|
||||
@@ -107,10 +111,10 @@ class AlarmModel {
|
||||
|
||||
DateTime get nextOccurrence {
|
||||
if (!isRepeating) return dateTime;
|
||||
|
||||
|
||||
final now = DateTime.now();
|
||||
if (dateTime.isAfter(now)) return dateTime;
|
||||
|
||||
|
||||
switch (repeatPattern) {
|
||||
case 'daily':
|
||||
return dateTime.add(const Duration(days: 1));
|
||||
@@ -124,7 +128,8 @@ class AlarmModel {
|
||||
while (!repeatDays.contains(next.weekday)) {
|
||||
next = next.add(const Duration(days: 1));
|
||||
}
|
||||
return DateTime(next.year, next.month, next.day, dateTime.hour, dateTime.minute);
|
||||
return DateTime(
|
||||
next.year, next.month, next.day, dateTime.hour, dateTime.minute);
|
||||
default:
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user