Created
July 19, 2021 17:15
-
-
Save kharitonovAL/fac2aeb6feeebca1ae315fc6d4a1dbeb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import 'package:parse_server_sdk_flutter/parse_server_sdk.dart'; | |
class UserRequest extends ParseObject with ChangeNotifier implements ParseCloneable { | |
static const String _keyTableName = 'UserRequest'; | |
@override | |
clone(Map<String, dynamic> map) => UserRequest.clone()..fromJson(map); | |
UserRequest() : super(_keyTableName); | |
UserRequest.clone() : this(); | |
static const String keyAccountNumber = 'accountNumber'; | |
static const String keyUserRequest = 'userRequest'; | |
static const String keyRequestNote = 'requestNote'; | |
static const String keyRequestNumber = 'requestNumber'; | |
static const String keyIsFailure = 'isFailure'; | |
static const String keyIsPaid = 'isPaid'; | |
static const String keyIsMaintenance = 'isMaintenance'; | |
static const String keyIsScheduled = 'isScheduled'; | |
static const String keyJobType = 'jobType'; | |
static const String keyRequestDate = 'requestDate'; | |
static const String keyResponse = 'response'; | |
static const String keyResponseDate = 'responseDate'; | |
static const String keyStatus = 'status'; | |
static const String keyAddress = 'address'; | |
static const String keyFlatNumber = 'flatNumber'; | |
static const String keyUserName = 'userName'; | |
static const String keyPhoneNumber = 'phoneNumber'; | |
static const String keyOwnerId = 'ownerId'; | |
static const String keyAuthor = 'author'; | |
static const String keyPartnerTitle = 'partnerTitle'; | |
static const String keyMasterStaff = 'masterStaff'; | |
static const String keyPartnerStaff = 'partnerStaff'; | |
static const String keyCancelReason = 'cancelReason'; | |
static const String keyUserUid = 'userUid'; | |
static const String keyUserToken = 'userToken'; | |
static const String keyDebt = 'debt'; | |
static const String keyWasSeen = 'wasSeen'; | |
static const String keyWasSeenByStaff = 'wasSeenByStaff'; | |
static const String keyDateSeenByStaff = 'dateSeenByStaff'; | |
static const String keyRequestHistory = 'requestHistory'; | |
String get accountNumber => get<String>(keyAccountNumber); | |
set accountNumber(String accountNumber) => set<String>(keyAccountNumber, accountNumber); | |
String get userRequest => get<String>(keyUserRequest); | |
set userRequest(String userRequest) => set<String>(keyUserRequest, userRequest); | |
String get requestNote => get<String>(keyRequestNote); | |
set requestNote(String requestNote) => set<String>(keyRequestNote, requestNote); | |
int get requestNumber => get<int>(keyRequestNumber); | |
set requestNumber(int requestNumber) => set<int>(keyRequestNumber, requestNumber); | |
bool get isFailure => get<bool>(keyIsFailure); | |
set isFailure(bool isFailure) => set<bool>(keyIsFailure, isFailure); | |
bool get isPaid => get<bool>(keyIsPaid); | |
set isPaid(bool isPaid) => set<bool>(keyIsPaid, isPaid); | |
bool get isMaintenance => get<bool>(keyIsMaintenance); | |
set isMaintenance(bool isMaintenance) => set<bool>(keyIsMaintenance, isMaintenance); | |
bool get isScheduled => get<bool>(keyIsScheduled); | |
set isScheduled(bool isScheduled) => set<bool>(keyIsScheduled, isScheduled); | |
String get jobType => get<String>(keyJobType); | |
set jobType(String jobType) => set<String>(keyJobType, jobType); | |
DateTime get requestDate => get<DateTime>(keyRequestDate); | |
set requestDate(DateTime requestDate) => set<DateTime>(keyRequestDate, requestDate); | |
String get response => get<String>(keyResponse); | |
set response(String response) => set<String>(keyResponse, response); | |
DateTime get responseDate => get<DateTime>(keyResponseDate); | |
set responseDate(DateTime responseDate) => set<DateTime>(keyResponseDate, responseDate); | |
String get status => get<String>(keyStatus); | |
set status(String status) => set<String>(keyStatus, status); | |
String get address => get<String>(keyAddress); | |
set address(String address) => set<String>(keyAddress, address); | |
String get flatNumber => get<String>(keyFlatNumber); | |
set flatNumber(String flatNumber) => set<String>(keyFlatNumber, flatNumber); | |
String get userName => get<String>(keyUserName); | |
set userName(String userName) => set<String>(keyUserName, userName); | |
int get phoneNumber => get<int>(keyPhoneNumber); | |
set phoneNumber(int phoneNumber) => set<int>(keyPhoneNumber, phoneNumber); | |
String get ownerId => get<String>(keyOwnerId); | |
set ownerId(String ownerId) => set<String>(keyOwnerId, ownerId); | |
String get author => get<String>(keyAuthor); | |
set author(String author) => set<String>(keyAuthor, author); | |
String get partnerTitle => get<String>(keyPartnerTitle); | |
set partnerTitle(String partnerTitle) => set<String>(keyPartnerTitle, partnerTitle); | |
String get masterStaff => get<String>(keyMasterStaff); | |
set masterStaff(String masterStaff) => set<String>(keyMasterStaff, masterStaff); | |
String get partnerStaff => get<String>(keyPartnerStaff); | |
set partnerStaff(String partnerStaff) => set<String>(keyPartnerStaff, partnerStaff); | |
String get cancelReason => get<String>(keyCancelReason); | |
set cancelReason(String cancelReason) => set<String>(keyCancelReason, cancelReason); | |
String get userUid => get<String>(keyUserUid); | |
set userUid(String userUid) => set<String>(keyUserUid, userUid); | |
String get userToken => get<String>(keyUserToken); | |
set userToken(String userToken) => set<String>(keyUserToken, userToken); | |
double get debt { | |
final value = get<dynamic>(keyDebt); | |
return double.parse('$value'); | |
} | |
set debt(double debt) => set<double>(keyDebt, debt); | |
bool get wasSeen => get<bool>(keyWasSeen); | |
set wasSeen(bool wasSeen) => set<bool>(keyWasSeen, wasSeen); | |
bool get wasSeenByStaff => get<bool>(keyWasSeenByStaff); | |
set wasSeenByStaff(bool wasSeenByStaff) => set<bool>(keyWasSeenByStaff, wasSeenByStaff); | |
DateTime get dateSeenByStaff => get<DateTime>(keyDateSeenByStaff); | |
set dateSeenByStaff(DateTime dateSeenByStaff) => set<DateTime>(keyDateSeenByStaff, dateSeenByStaff); | |
List get requestHistory => get<List>(keyRequestHistory); | |
set requestHistory(List requestHistory) => set<List>(keyRequestHistory, requestHistory); | |
} | |
/// Class represents user request's statuses. It's full name was `RequestStatus`, but for convenience | |
/// it was renamed to `RS`. | |
class RS { | |
static final received = 'Получена'; | |
static final passedToTheChiefEngineer = 'Передана главному инженеру'; | |
static final passedToTheMaster = 'Передана мастеру'; | |
static final inProgress = 'В работе'; | |
static final closed = 'Закрыта'; | |
static final canceled = 'Отозвана заявителем'; | |
} | |
Widget requestStatusIcon(UserRequest request) { | |
if (request.status == RS.received) { | |
return CircleAvatar( | |
backgroundColor: Colors.transparent, | |
child: Icon(Icons.assignment_late, color: Colors.grey), | |
); | |
} | |
if (request.status == RS.passedToTheChiefEngineer) { | |
return CircleAvatar(backgroundColor: Colors.transparent, child: Icon(Icons.assignment, color: Colors.yellow)); | |
} | |
if (request.status == RS.passedToTheMaster) { | |
return CircleAvatar(backgroundColor: Colors.transparent, child: Icon(Icons.assignment, color: Colors.yellow)); | |
} | |
if (request.status == RS.inProgress) { | |
return CircleAvatar(backgroundColor: Colors.transparent, child: Icon(Icons.assignment, color: Colors.yellow)); | |
} | |
if (request.status == RS.closed) { | |
Color bgColor = Colors.transparent; | |
if (request.isFailure) { | |
bgColor = Color.fromRGBO(255, 0, 0, 0.25); | |
} | |
if (request.isPaid) { | |
bgColor = Color.fromRGBO(0, 255, 0, 0.25); | |
} | |
return CircleAvatar( | |
backgroundColor: bgColor, | |
child: Icon(Icons.assignment_turned_in, color: Colors.green), | |
); | |
} | |
if (request.status == RS.canceled) { | |
Color bgColor = Colors.transparent; | |
if (request.isFailure) { | |
bgColor = Color.fromRGBO(255, 0, 0, 0.25); | |
} | |
if (request.isPaid) { | |
bgColor = Color.fromRGBO(0, 255, 0, 0.25); | |
} | |
return CircleAvatar( | |
backgroundColor: bgColor, | |
child: Icon(Icons.cancel, color: Colors.blue), | |
); | |
} | |
return null; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment