init
This commit is contained in:
@@ -0,0 +1,252 @@
|
||||
class Dealer {
|
||||
Dealer({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.code,
|
||||
this.district,
|
||||
this.address,
|
||||
this.phone,
|
||||
});
|
||||
|
||||
final String id;
|
||||
final String name;
|
||||
final String code;
|
||||
final String? district;
|
||||
final String? address;
|
||||
final String? phone;
|
||||
|
||||
factory Dealer.fromJson(Map<String, dynamic> json) {
|
||||
return Dealer(
|
||||
id: json['id'] as String,
|
||||
name: json['name'] as String,
|
||||
code: json['code'] as String,
|
||||
district: json['district'] as String?,
|
||||
address: json['address'] as String?,
|
||||
phone: json['phone'] as String?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class AppUser {
|
||||
AppUser({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.phone,
|
||||
required this.role,
|
||||
this.dealerId,
|
||||
this.assignedDealerIds = const [],
|
||||
this.dealers = const [],
|
||||
});
|
||||
|
||||
final String id;
|
||||
final String name;
|
||||
final String phone;
|
||||
final String role;
|
||||
final String? dealerId;
|
||||
final List<String> assignedDealerIds;
|
||||
final List<Dealer> dealers;
|
||||
|
||||
factory AppUser.fromJson(Map<String, dynamic> json) {
|
||||
return AppUser(
|
||||
id: json['id'] as String,
|
||||
name: json['name'] as String,
|
||||
phone: json['phone'] as String,
|
||||
role: json['role'] as String,
|
||||
dealerId: json['dealerId'] as String?,
|
||||
assignedDealerIds: ((json['assignedDealerIds'] as List?) ?? const [])
|
||||
.map((id) => id as String)
|
||||
.toList(),
|
||||
dealers: ((json['dealers'] as List?) ?? const [])
|
||||
.map((item) => Dealer.fromJson(item as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class LoginRequestItem {
|
||||
LoginRequestItem({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.phone,
|
||||
this.dealerName,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
final String id;
|
||||
final String name;
|
||||
final String phone;
|
||||
final String? dealerName;
|
||||
final DateTime createdAt;
|
||||
|
||||
factory LoginRequestItem.fromJson(Map<String, dynamic> json) {
|
||||
final user = json['user'] as Map<String, dynamic>;
|
||||
return LoginRequestItem(
|
||||
id: json['id'] as String,
|
||||
name: user['name'] as String,
|
||||
phone: user['phone'] as String,
|
||||
dealerName: json['dealerName'] as String?,
|
||||
createdAt: DateTime.parse(json['createdAt'] as String),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class DealerLoginStatus {
|
||||
DealerLoginStatus({required this.status, this.token, this.user});
|
||||
|
||||
final String status;
|
||||
final String? token;
|
||||
final AppUser? user;
|
||||
|
||||
factory DealerLoginStatus.fromJson(Map<String, dynamic> json) {
|
||||
return DealerLoginStatus(
|
||||
status: json['status'] as String,
|
||||
token: json['token'] as String?,
|
||||
user: json['user'] is Map<String, dynamic>
|
||||
? AppUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
: null,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class StockItem {
|
||||
StockItem({
|
||||
required this.id,
|
||||
required this.chassisNumber,
|
||||
required this.engineNumber,
|
||||
required this.model,
|
||||
required this.color,
|
||||
required this.currentDealerId,
|
||||
this.dealerName,
|
||||
required this.dateReceived,
|
||||
required this.currentStage,
|
||||
required this.stageLogDates,
|
||||
this.paymentType,
|
||||
this.leaseProviderType,
|
||||
this.financeCompanyName,
|
||||
this.plateNumber,
|
||||
required this.ageInDays,
|
||||
required this.badge,
|
||||
});
|
||||
|
||||
final String id;
|
||||
final String chassisNumber;
|
||||
final String engineNumber;
|
||||
final String model;
|
||||
final String color;
|
||||
final String currentDealerId;
|
||||
final String? dealerName;
|
||||
final DateTime dateReceived;
|
||||
final String currentStage;
|
||||
final Map<String, DateTime> stageLogDates;
|
||||
final String? paymentType;
|
||||
final String? leaseProviderType;
|
||||
final String? financeCompanyName;
|
||||
final String? plateNumber;
|
||||
final int ageInDays;
|
||||
final String badge;
|
||||
|
||||
factory StockItem.fromJson(Map<String, dynamic> json) {
|
||||
final rawLogs = json['stageLogDates'];
|
||||
final logs = <String, DateTime>{};
|
||||
if (rawLogs is Map) {
|
||||
rawLogs.forEach((key, value) {
|
||||
if (value != null) {
|
||||
logs[key.toString()] = DateTime.parse(value.toString());
|
||||
}
|
||||
});
|
||||
}
|
||||
return StockItem(
|
||||
id: json['id'] as String,
|
||||
chassisNumber: json['chassisNumber'] as String,
|
||||
engineNumber: json['engineNumber'] as String,
|
||||
model: json['model'] as String,
|
||||
color: json['color'] as String,
|
||||
currentDealerId: json['currentDealerId'] as String,
|
||||
dealerName: json['dealerName'] as String?,
|
||||
dateReceived: DateTime.parse(json['dateReceived'] as String),
|
||||
currentStage: json['currentStage'] as String,
|
||||
stageLogDates: logs,
|
||||
paymentType: json['paymentType'] as String?,
|
||||
leaseProviderType: json['leaseProviderType'] as String?,
|
||||
financeCompanyName: json['financeCompanyName'] as String?,
|
||||
plateNumber: json['plateNumber'] as String?,
|
||||
ageInDays: (json['ageInDays'] as num).toInt(),
|
||||
badge: json['badge'] as String,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class EventPlan {
|
||||
EventPlan({
|
||||
required this.id,
|
||||
required this.dealerId,
|
||||
this.dealerName,
|
||||
required this.planType,
|
||||
this.month,
|
||||
this.year,
|
||||
required this.title,
|
||||
required this.description,
|
||||
required this.expense,
|
||||
required this.imageUrls,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
final String id;
|
||||
final String dealerId;
|
||||
final String? dealerName;
|
||||
final String planType;
|
||||
final int? month;
|
||||
final int? year;
|
||||
final String title;
|
||||
final String description;
|
||||
final double expense;
|
||||
final List<String> imageUrls;
|
||||
final DateTime createdAt;
|
||||
|
||||
factory EventPlan.fromJson(Map<String, dynamic> json) {
|
||||
return EventPlan(
|
||||
id: json['id'] as String,
|
||||
dealerId: json['dealerId'] as String,
|
||||
dealerName: json['dealerName'] as String?,
|
||||
planType: json['planType'] as String,
|
||||
month: json['month'] as int?,
|
||||
year: json['year'] as int?,
|
||||
title: json['title'] as String,
|
||||
description: json['description'] as String,
|
||||
expense: (json['expense'] as num).toDouble(),
|
||||
imageUrls: ((json['imageUrls'] as List?) ?? const [])
|
||||
.map((url) => url as String)
|
||||
.toList(),
|
||||
createdAt: DateTime.parse(json['createdAt'] as String),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class ServicePoint {
|
||||
ServicePoint({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.district,
|
||||
this.address,
|
||||
this.phone,
|
||||
this.notes,
|
||||
});
|
||||
|
||||
final String id;
|
||||
final String name;
|
||||
final String district;
|
||||
final String? address;
|
||||
final String? phone;
|
||||
final String? notes;
|
||||
|
||||
factory ServicePoint.fromJson(Map<String, dynamic> json) {
|
||||
return ServicePoint(
|
||||
id: json['id'] as String,
|
||||
name: json['name'] as String,
|
||||
district: json['district'] as String,
|
||||
address: json['address'] as String?,
|
||||
phone: json['phone'] as String?,
|
||||
notes: json['notes'] as String?,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user