You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

339 lines
8.7 KiB

  1. import 'dart:convert';
  2. class PrivateMeetingsModel {
  3. List<DatumInPrivateMeeting>? data;
  4. PrivateMeetingsModel({
  5. this.data,
  6. });
  7. factory PrivateMeetingsModel.fromRawJson(String str) =>
  8. PrivateMeetingsModel.fromJson(json.decode(str));
  9. String toRawJson() => json.encode(toJson());
  10. factory PrivateMeetingsModel.fromJson(Map<String, dynamic> json) =>
  11. PrivateMeetingsModel(
  12. data: json["data"] == null
  13. ? []
  14. : List<DatumInPrivateMeeting>.from(
  15. json["data"]!.map((x) => DatumInPrivateMeeting.fromJson(x))),
  16. );
  17. Map<String, dynamic> toJson() => {
  18. "data": data == null
  19. ? []
  20. : List<dynamic>.from(data!.map((x) => x.toJson())),
  21. };
  22. hasData() => this.data != null && this.data!.isNotEmpty;
  23. }
  24. class DatumInPrivateMeeting {
  25. int? id;
  26. int? locationsId;
  27. int? subjectId;
  28. int? managerId;
  29. int? ownerId;
  30. String? azHour;
  31. String? taHour;
  32. String? description;
  33. int? status;
  34. int? accepted;
  35. String? visitName;
  36. String? visitMobile;
  37. String? visitRole;
  38. String? visitCompany;
  39. DateTime? dateMeeting;
  40. DateTime? endDate;
  41. DateTime? createdAt;
  42. DateTime? updatedAt;
  43. String? dateJalali;
  44. StatusTxt? statusTxt;
  45. String? az;
  46. String? ta;
  47. List<String>? minutes;
  48. Location? location;
  49. Subject? subject;
  50. Manager? manager;
  51. DatumInPrivateMeeting({
  52. this.id,
  53. this.locationsId,
  54. this.subjectId,
  55. this.managerId,
  56. this.ownerId,
  57. this.azHour,
  58. this.taHour,
  59. this.description,
  60. this.status,
  61. this.accepted,
  62. this.visitName,
  63. this.visitMobile,
  64. this.visitRole,
  65. this.visitCompany,
  66. this.dateMeeting,
  67. this.endDate,
  68. this.createdAt,
  69. this.updatedAt,
  70. this.dateJalali,
  71. this.statusTxt,
  72. this.az,
  73. this.ta,
  74. this.minutes,
  75. this.location,
  76. this.subject,
  77. this.manager,
  78. });
  79. factory DatumInPrivateMeeting.fromRawJson(String str) =>
  80. DatumInPrivateMeeting.fromJson(json.decode(str));
  81. String toRawJson() => json.encode(toJson());
  82. factory DatumInPrivateMeeting.fromJson(Map<String, dynamic> json) =>
  83. DatumInPrivateMeeting(
  84. id: json["id"],
  85. locationsId: json["locations_id"],
  86. subjectId: json["subject_id"],
  87. managerId: json["manager_id"],
  88. ownerId: json["owner_id"],
  89. azHour: json["az_hour"],
  90. taHour: json["ta_hour"],
  91. description: json["description"],
  92. status: json["status"],
  93. accepted: json["accepted"],
  94. visitName: json["visit_name"],
  95. visitMobile: json["visit_mobile"],
  96. visitRole: json["visit_role"],
  97. visitCompany: json["visit_company"],
  98. dateMeeting: json["date_meeting"] == null
  99. ? null
  100. : DateTime.parse(json["date_meeting"]),
  101. endDate:
  102. json["end_date"] == null ? null : DateTime.parse(json["end_date"]),
  103. createdAt: json["created_at"] == null
  104. ? null
  105. : DateTime.parse(json["created_at"]),
  106. updatedAt: json["updated_at"] == null
  107. ? null
  108. : DateTime.parse(json["updated_at"]),
  109. dateJalali: json["date_jalali"],
  110. statusTxt: statusTxtValues.map[json["status_txt"]]!,
  111. az: json["az"],
  112. ta: json["ta"],
  113. minutes: json["minutes"] == null
  114. ? []
  115. : List<String>.from(json["minutes"]!.map((x) => x)),
  116. location: json["location"] == null
  117. ? null
  118. : Location.fromJson(json["location"]),
  119. subject:
  120. json["subject"] == null ? null : Subject.fromJson(json["subject"]),
  121. manager:
  122. json["manager"] == null ? null : Manager.fromJson(json["manager"]),
  123. );
  124. Map<String, dynamic> toJson() => {
  125. "id": id,
  126. "locations_id": locationsId,
  127. "subject_id": subjectId,
  128. "manager_id": managerId,
  129. "owner_id": ownerId,
  130. "az_hour": azHour,
  131. "ta_hour": taHour,
  132. "description": description,
  133. "status": status,
  134. "accepted": accepted,
  135. "visit_name": visitName,
  136. "visit_mobile": visitMobile,
  137. "visit_role": visitRole,
  138. "visit_company": visitCompany,
  139. "date_meeting": dateMeeting?.toIso8601String(),
  140. "end_date": endDate?.toIso8601String(),
  141. "created_at": createdAt?.toIso8601String(),
  142. "updated_at": updatedAt?.toIso8601String(),
  143. "date_jalali": dateJalali,
  144. "status_txt": statusTxtValues.reverse[statusTxt],
  145. "az": az,
  146. "ta": ta,
  147. "minutes":
  148. minutes == null ? [] : List<dynamic>.from(minutes!.map((x) => x)),
  149. "location": location?.toJson(),
  150. "subject": subject?.toJson(),
  151. "manager": manager?.toJson(),
  152. };
  153. }
  154. class Location {
  155. int? id;
  156. String? address;
  157. String? addressEn;
  158. DateTime? createdAt;
  159. DateTime? updatedAt;
  160. Location({
  161. this.id,
  162. this.address,
  163. this.addressEn,
  164. this.createdAt,
  165. this.updatedAt,
  166. });
  167. factory Location.fromRawJson(String str) =>
  168. Location.fromJson(json.decode(str));
  169. String toRawJson() => json.encode(toJson());
  170. factory Location.fromJson(Map<String, dynamic> json) => Location(
  171. id: json["id"],
  172. address: json["address"],
  173. addressEn: json["address_en"],
  174. createdAt: json["created_at"] == null
  175. ? null
  176. : DateTime.parse(json["created_at"]),
  177. updatedAt: json["updated_at"] == null
  178. ? null
  179. : DateTime.parse(json["updated_at"]),
  180. );
  181. Map<String, dynamic> toJson() => {
  182. "id": id,
  183. "address": address,
  184. "address_en": addressEn,
  185. "created_at": createdAt?.toIso8601String(),
  186. "updated_at": updatedAt?.toIso8601String(),
  187. };
  188. }
  189. class Manager {
  190. int? id;
  191. Name? name;
  192. int? role;
  193. String? mobile;
  194. dynamic otp;
  195. dynamic access;
  196. dynamic managerId;
  197. dynamic firebaseToken;
  198. int? isBlock;
  199. int? getSms;
  200. DateTime? createdAt;
  201. DateTime? updatedAt;
  202. Manager({
  203. this.id,
  204. this.name,
  205. this.role,
  206. this.mobile,
  207. this.otp,
  208. this.access,
  209. this.managerId,
  210. this.firebaseToken,
  211. this.isBlock,
  212. this.getSms,
  213. this.createdAt,
  214. this.updatedAt,
  215. });
  216. factory Manager.fromRawJson(String str) => Manager.fromJson(json.decode(str));
  217. String toRawJson() => json.encode(toJson());
  218. factory Manager.fromJson(Map<String, dynamic> json) => Manager(
  219. id: json["id"],
  220. name: nameValues.map[json["name"]],
  221. role: json["role"],
  222. mobile: json["mobile"],
  223. otp: json["otp"],
  224. access: json["access"],
  225. managerId: json["manager_id"],
  226. firebaseToken: json["firebase_token"],
  227. isBlock: json["is_block"],
  228. getSms: json["get_sms"],
  229. createdAt: json["created_at"] == null
  230. ? null
  231. : DateTime.parse(json["created_at"]),
  232. updatedAt: json["updated_at"] == null
  233. ? null
  234. : DateTime.parse(json["updated_at"]),
  235. );
  236. Map<String, dynamic> toJson() => {
  237. "id": id,
  238. "name": nameValues.reverse[name],
  239. "role": role,
  240. "mobile": mobile,
  241. "otp": otp,
  242. "access": access,
  243. "manager_id": managerId,
  244. "firebase_token": firebaseToken,
  245. "is_block": isBlock,
  246. "get_sms": getSms,
  247. "created_at": createdAt?.toIso8601String(),
  248. "updated_at": updatedAt?.toIso8601String(),
  249. };
  250. }
  251. enum Name { ADMIN, ALI }
  252. final nameValues = EnumValues({"Admin": Name.ADMIN, "Ali": Name.ALI});
  253. enum StatusTxt { EMPTY, PURPLE, STATUS_TXT }
  254. final statusTxtValues = EnumValues({
  255. "لغو شده": StatusTxt.EMPTY,
  256. "منتظر برگزاری": StatusTxt.PURPLE,
  257. "برگزار شده": StatusTxt.STATUS_TXT
  258. });
  259. class Subject {
  260. int? id;
  261. String? subject;
  262. String? subjectEn;
  263. DateTime? createdAt;
  264. DateTime? updatedAt;
  265. Subject({
  266. this.id,
  267. this.subject,
  268. this.subjectEn,
  269. this.createdAt,
  270. this.updatedAt,
  271. });
  272. factory Subject.fromRawJson(String str) => Subject.fromJson(json.decode(str));
  273. String toRawJson() => json.encode(toJson());
  274. factory Subject.fromJson(Map<String, dynamic> json) => Subject(
  275. id: json["id"],
  276. subject: json["subject"],
  277. subjectEn: json["subject_en"],
  278. createdAt: json["created_at"] == null
  279. ? null
  280. : DateTime.parse(json["created_at"]),
  281. updatedAt: json["updated_at"] == null
  282. ? null
  283. : DateTime.parse(json["updated_at"]),
  284. );
  285. Map<String, dynamic> toJson() => {
  286. "id": id,
  287. "subject": subject,
  288. "subject_en": subjectEn,
  289. "created_at": createdAt?.toIso8601String(),
  290. "updated_at": updatedAt?.toIso8601String(),
  291. };
  292. }
  293. class EnumValues<T> {
  294. Map<String, T> map;
  295. late Map<T, String> reverseMap;
  296. EnumValues(this.map);
  297. Map<T, String> get reverse {
  298. reverseMap = map.map((k, v) => MapEntry(v, k));
  299. return reverseMap;
  300. }
  301. }