import 'package:json_annotation/json_annotation.dart'; enum LedgerAccountRoleDTO { @JsonValue('unspecified') unspecified, @JsonValue('operating') operating, @JsonValue('hold') hold, @JsonValue('transit') transit, @JsonValue('settlement') settlement, @JsonValue('clearing') clearing, @JsonValue('pending') pending, @JsonValue('reserve') reserve, @JsonValue('liquidity') liquidity, @JsonValue('fee') fee, @JsonValue('chargeback') chargeback, @JsonValue('adjustment') adjustment, } LedgerAccountRoleDTO ledgerAccountRoleFromJson(Object? value) { final raw = value?.toString() ?? ''; var normalized = raw.trim().toLowerCase(); const prefix = 'account_role_'; if (normalized.startsWith(prefix)) { normalized = normalized.substring(prefix.length); } switch (normalized) { case 'operating': return LedgerAccountRoleDTO.operating; case 'hold': return LedgerAccountRoleDTO.hold; case 'transit': return LedgerAccountRoleDTO.transit; case 'settlement': return LedgerAccountRoleDTO.settlement; case 'clearing': return LedgerAccountRoleDTO.clearing; case 'pending': return LedgerAccountRoleDTO.pending; case 'reserve': return LedgerAccountRoleDTO.reserve; case 'liquidity': return LedgerAccountRoleDTO.liquidity; case 'fee': return LedgerAccountRoleDTO.fee; case 'chargeback': return LedgerAccountRoleDTO.chargeback; case 'adjustment': return LedgerAccountRoleDTO.adjustment; case 'unspecified': case '': return LedgerAccountRoleDTO.unspecified; default: return LedgerAccountRoleDTO.unspecified; } } String ledgerAccountRoleToJson(LedgerAccountRoleDTO value) { switch (value) { case LedgerAccountRoleDTO.operating: return 'operating'; case LedgerAccountRoleDTO.hold: return 'hold'; case LedgerAccountRoleDTO.transit: return 'transit'; case LedgerAccountRoleDTO.settlement: return 'settlement'; case LedgerAccountRoleDTO.clearing: return 'clearing'; case LedgerAccountRoleDTO.pending: return 'pending'; case LedgerAccountRoleDTO.reserve: return 'reserve'; case LedgerAccountRoleDTO.liquidity: return 'liquidity'; case LedgerAccountRoleDTO.fee: return 'fee'; case LedgerAccountRoleDTO.chargeback: return 'chargeback'; case LedgerAccountRoleDTO.adjustment: return 'adjustment'; case LedgerAccountRoleDTO.unspecified: return 'unspecified'; } }