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 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(), ); }