class ClaimListResponse {
const ClaimListResponse({required this.claims});
final List<ClaimRecord> claims;
factory ClaimListResponse.fromJson(Map<String, dynamic> json) {
final rawClaims = json['claims'];
return ClaimListResponse(
claims: rawClaims is List
? rawClaims
.whereType<Map<String, dynamic>>()
.map(ClaimRecord.fromJson)
.toList(growable: false)
: const [],
);
}
}
class ClaimRecord {
const ClaimRecord({
required this.id,
required this.objectType,
required this.objectId,
required this.claimantUserId,
required this.organizationName,
required this.claimantNote,
required this.status,
required this.decisionNote,
required this.createdAt,
required this.updatedAt,
});
final int id;
final String objectType;
final int objectId;
final int claimantUserId;
final String organizationName;
final String claimantNote;
final String status;
final String decisionNote;
final String createdAt;
final String updatedAt;
factory ClaimRecord.fromJson(Map<String, dynamic> json) {
return ClaimRecord(
id: _int(json['id']),
objectType: _string(json['object_type']),
objectId: _int(json['object_id']),
claimantUserId: _int(json['claimant_user_id']),
organizationName: _string(json['organization_name']),
claimantNote: _string(json['claimant_note']),
status: _string(json['status'], 'pending'),
decisionNote: _string(json['decision_note']),
createdAt: _string(json['created_at']),
updatedAt: _string(json['updated_at']),
);
}
}
String _string(Object? value, [String fallback = '']) =>
value is String ? value : fallback;
int _int(Object? value) => value is num ? value.toInt() : 0;
