Skip to content

Instantly share code, notes, and snippets.

@kharitonovAL
Created July 19, 2021 17:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kharitonovAL/fac2aeb6feeebca1ae315fc6d4a1dbeb to your computer and use it in GitHub Desktop.
Save kharitonovAL/fac2aeb6feeebca1ae315fc6d4a1dbeb to your computer and use it in GitHub Desktop.
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