Added [EventModel] and [TaskModel]

This commit is contained in:
Mariano Uvalle 2019-02-21 22:44:08 -06:00
parent 4ab33d377f
commit 5c2375fb21
7 changed files with 129 additions and 24 deletions

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildSystemType</key>
<string>Original</string>
</dict>
</plist>

View file

@ -1,10 +1,39 @@
import 'package:flutter/material.dart';
import './models/user_model.dart';
import './resources/firebase_provider.dart';
class App extends StatelessWidget {
Widget build(BuildContext context) {
final fire = FirebaseProvider();
return MaterialApp(
title: 'Do more',
home: Text('Start'),
//home: Text('Start'),
home: Scaffold(
appBar: AppBar(
title: Text('DO>'),
),
body: StreamBuilder(
stream: fire.getUser('mariano159357'),
builder:
(BuildContext context, AsyncSnapshot<UserModel> userSnapshot) {
if (!userSnapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
}
return Column(
children: <Widget>[
Text('${userSnapshot.data.pendingHigh}'),
MaterialButton(
onPressed: () {},
child: Text('Add task'),
),
],
);
},
),
),
);
}
}

View file

@ -0,0 +1,33 @@
import 'package:meta/meta.dart';
class EventModel {
final String name;
final int pendigTasks;
final List<bool> when;
final List<String> media;
final List<String> tasks;
final int highPriority;
final int mediumPriority;
final int lowPriority;
EventModel({
@required this.name,
@required this.pendigTasks,
@required this.when,
@required this.media,
@required this.tasks,
@required this.highPriority,
@required this.mediumPriority,
@required this.lowPriority,
});
EventModel.fromFirestore(Map<String, dynamic> firestoreMap)
: name = firestoreMap["name"],
pendigTasks = firestoreMap["pendingTasks"],
when = firestoreMap["when"].cast<bool>(),
media = firestoreMap["media"].cast<String>(),
tasks = firestoreMap["tasks"].cast<String>(),
highPriority = firestoreMap["highPriority"],
mediumPriority = firestoreMap["mediumPriority"],
lowPriority = firestoreMap["lowPriority"];
}

View file

@ -1,14 +1,17 @@
/// A summary of a user's week.
///
/// It represents how many tasks were completed and added by a user every day.
class SummaryModel {
final int completedMonday;
final int addedMonday;
final int completedTuesday;
final int addedTuesday;
final int completedWednesday;
final int addedWednesday;
final int completedThursday;
final int addedThursday;
final int completedFriday;
final int addedFriday;
int completedMonday;
int addedMonday;
int completedTuesday;
int addedTuesday;
int completedWednesday;
int addedWednesday;
int completedThursday;
int addedThursday;
int completedFriday;
int addedFriday;
SummaryModel({
this.completedMonday,
@ -23,15 +26,17 @@ class SummaryModel {
this.addedFriday,
});
SummaryModel.fromMap(Map<String, dynamic> map)
: completedMonday = map["completedMonday"],
addedMonday = map["addedMonday"],
completedTuesday = map["completedTuesday"],
addedTuesday = map["addedTuesday"],
completedWednesday = map["completedWednesday"],
addedWednesday = map["addedWednesday"],
completedThursday = map["completedThursday"],
addedThursday = map["addedThursday"],
completedFriday = map["completedFriday"],
addedFriday = map["addedFriday"];
/// Returns a [SummaryModel] from a map.
SummaryModel.fromMap(Map<String, dynamic> map) {
completedMonday = map["completedMonday"];
addedMonday = map["addedMonday"];
completedTuesday = map["completedTuesday"];
addedTuesday = map["addedTuesday"];
completedWednesday = map["completedWednesday"];
addedWednesday = map["addedWednesday"];
completedThursday = map["completedThursday"];
addedThursday = map["addedThursday"];
completedFriday = map["completedFriday"];
addedFriday = map["addedFriday"];
}
}

View file

@ -0,0 +1,24 @@
import 'package:meta/meta.dart';
class TaskModel {
final String text;
final int priority;
final String ownerUsername;
final bool done;
final String event;
TaskModel({
@required this.text,
@required this.priority,
@required this.ownerUsername,
@required this.done,
@required this.event,
});
TaskModel.fromFirestore(Map<String, dynamic> firestoreMap)
: text = firestoreMap["text"],
priority = firestoreMap["priority"],
ownerUsername = firestoreMap["ownerUsername"],
done = firestoreMap["done"],
event = firestoreMap["event"];
}

View file

@ -1,5 +1,8 @@
import 'summary_model.dart';
/// An app user.
///
/// Represents all of a users data.
class UserModel {
final String username;
final List<int> tasks;
@ -25,10 +28,12 @@ class UserModel {
assert(pendingMedium != null),
assert(pendingLow != null);
///Returns a [UserModel] from a map.
UserModel.fromFirestore(Map<String, dynamic> firestoreMap)
: username = firestoreMap["username"],
tasks = firestoreMap["tasks"].cast<int>(),
summary = SummaryModel.fromMap(firestoreMap),
summary =
SummaryModel.fromMap(firestoreMap["summary"].cast<String, int>()),
userId = firestoreMap["userId"],
pendingHigh = firestoreMap["pendingHigh"],
pendingMedium = firestoreMap["pendingMedium"],

View file

@ -22,7 +22,8 @@ dependencies:
http: ^0.12.0
sqflite: ^1.1.0
rxdart: ^0.20.0
firebase_core: ^0.3.0+2
firebase_core: ^0.3.0
firebase_analytics: ^2.0.2
cloud_firestore: ^0.9.0
firebase_auth: ^0.8.1
firebase_ml_vision: ^0.6.0