65 lines
1.5 KiB
Dart
65 lines
1.5 KiB
Dart
import '../models/identity.dart';
|
|
import '../models/limits.dart';
|
|
|
|
// Transport contracts for the stub. Replace with generated backend DTOs later.
|
|
class IdentityDTO {
|
|
const IdentityDTO(this.status, {this.reason, this.id, this.simulated = true});
|
|
final String status;
|
|
final String? reason;
|
|
final String? id;
|
|
final bool simulated;
|
|
}
|
|
|
|
class IdentityMapper {
|
|
static Identity fromDTO(IdentityDTO dto) => Identity(
|
|
status: IdentityStatus.values.byName(dto.status),
|
|
reason: dto.reason == null ? null : ReviewReason.values.byName(dto.reason!),
|
|
submissionId: dto.id,
|
|
simulated: dto.simulated,
|
|
);
|
|
}
|
|
|
|
class LimitsDTO {
|
|
const LimitsDTO({
|
|
required this.tier,
|
|
required this.rows,
|
|
required this.simulated,
|
|
});
|
|
final String tier;
|
|
final List<LimitDTO> rows;
|
|
final bool simulated;
|
|
}
|
|
|
|
class LimitDTO {
|
|
const LimitDTO(
|
|
this.period,
|
|
this.currency,
|
|
this.basic,
|
|
this.verified,
|
|
this.current,
|
|
this.remaining,
|
|
);
|
|
final String period;
|
|
final String currency;
|
|
final int basic, verified, current, remaining;
|
|
}
|
|
|
|
class LimitsMapper {
|
|
static Limits fromDTO(LimitsDTO dto) => Limits(
|
|
tier: AccountTier.values.byName(dto.tier),
|
|
simulated: dto.simulated,
|
|
rows: dto.rows
|
|
.map(
|
|
(r) => VisibleLimit(
|
|
period: LimitPeriod.values.byName(r.period),
|
|
currency: r.currency,
|
|
basicMinor: r.basic,
|
|
verifiedMinor: r.verified,
|
|
currentMinor: r.current,
|
|
remainingMinor: r.remaining,
|
|
),
|
|
)
|
|
.toList(),
|
|
);
|
|
}
|