BillingPlan.fromMap constructor

BillingPlan.fromMap(
  1. Map<String, dynamic> map
)

Implementation

factory BillingPlan.fromMap(
  Map<String, dynamic> map,
) {
  map = {
    '\$id': "",
    'name': "",
    'desc': "",
    'order': 0,
    'price': 0,
    'trial': 0,
    'bandwidth': 0,
    'storage': 0,
    'imageTransformations': 0,
    'screenshotsGenerated': 0,
    'webhooks': 0,
    'wafRules': 0,
    'environments': 0,
    'projects': 0,
    'platforms': 0,
    'users': 0,
    'teams': 0,
    'databases': 0,
    'databasesReads': 0,
    'databasesWrites': 0,
    'databasesBatchSize': 0,
    'buckets': 0,
    'fileSize': 0,
    'functions': 0,
    'sites': 0,
    'executions': 0,
    'executionsRetentionCount': 1000,
    'GBHours': 0,
    'realtime': 0,
    'realtimeMessages': 0,
    'messages': 0,
    'topics': 0,
    'authPhone': 0,
    'domains': 0,
    'usageLogs': 0,
    'projectInactivityDays': 0,
    'alertLimit': 80,
    'budgetCapEnabled': false,
    'customSmtp': false,
    'emailBranding': false,
    'requiresPaymentMethod': true,
    'requiresBillingAddress': false,
    'isAvailable': true,
    'selfService': true,
    'premiumSupport': true,
    'budgeting': true,
    'supportsMockNumbers': true,
    'supportsOrganizationRoles': true,
    'supportsCredits': false,
    'supportsDedicatedDatabases': false,
    'supportsDisposableEmailValidation': false,
    'supportsCanonicalEmailValidation': false,
    'supportsFreeEmailValidation': false,
    'supportsCorporateEmailValidation': false,
    'supportsProjectSpecificRoles': false,
    'usagePerProject': true,
    'deploymentSize': 0,
    'buildSize': 0,
    'functionsIntervalMinimum': 0,
    'functionsAllowCron': true,
    'databasesAllowEncrypt': false,
    'databaseComputeCredit': 0,
    ...map,
  };

  return BillingPlan(
    $id: map['\$id'].toString(),
    name: map['name'].toString(),
    desc: map['desc'].toString(),
    order: map['order'],
    price: map['price'].toDouble(),
    trial: map['trial'],
    bandwidth: map['bandwidth'],
    storage: map['storage'],
    imageTransformations: map['imageTransformations'],
    screenshotsGenerated: map['screenshotsGenerated'],
    members: map['members'],
    webhooks: map['webhooks'],
    wafRules: map['wafRules'],
    environments: map['environments'],
    projects: map['projects'],
    platforms: map['platforms'],
    users: map['users'],
    teams: map['teams'],
    databases: map['databases'],
    databasesReads: map['databasesReads'],
    databasesWrites: map['databasesWrites'],
    databasesBatchSize: map['databasesBatchSize'],
    buckets: map['buckets'],
    fileSize: map['fileSize'],
    functions: map['functions'],
    sites: map['sites'],
    executions: map['executions'],
    executionsRetentionCount: map['executionsRetentionCount'],
    deploymentRetention: map['deploymentRetention'],
    deploymentRetentionMax: map['deploymentRetentionMax'],
    deploymentsRetentionCount: map['deploymentsRetentionCount'],
    GBHours: map['GBHours'],
    realtime: map['realtime'],
    realtimeMessages: map['realtimeMessages'],
    messages: map['messages'],
    topics: map['topics'],
    authPhone: map['authPhone'],
    domains: map['domains'],
    activityLogs: map['activityLogs'],
    usageLogs: map['usageLogs'],
    usageLogsIntervals: List.from(map['usageLogsIntervals'] ?? []),
    usageAggregateOnlyMetrics:
        List.from(map['usageAggregateOnlyMetrics'] ?? []),
    projectInactivityDays: map['projectInactivityDays'],
    alertLimit: map['alertLimit'],
    usage: map['usage'] != null
        ? UsageBillingPlan.fromMap(
            map['usage'],
          )
        : null,
    addons: BillingPlanAddon.fromMap(
      map['addons'] ?? <String, dynamic>{},
    ),
    budgetCapEnabled: map['budgetCapEnabled'],
    customSmtp: map['customSmtp'],
    emailBranding: map['emailBranding'],
    requiresPaymentMethod: map['requiresPaymentMethod'],
    requiresBillingAddress: map['requiresBillingAddress'],
    eligibleCountries: List.from(map['eligibleCountries'] ?? []),
    isAvailable: map['isAvailable'],
    selfService: map['selfService'],
    premiumSupport: map['premiumSupport'],
    budgeting: map['budgeting'],
    supportsMockNumbers: map['supportsMockNumbers'],
    supportsOrganizationRoles: map['supportsOrganizationRoles'],
    supportsCredits: map['supportsCredits'],
    supportsDedicatedDatabases: map['supportsDedicatedDatabases'],
    supportsDisposableEmailValidation:
        map['supportsDisposableEmailValidation'],
    supportsCanonicalEmailValidation: map['supportsCanonicalEmailValidation'],
    supportsFreeEmailValidation: map['supportsFreeEmailValidation'],
    supportsCorporateEmailValidation: map['supportsCorporateEmailValidation'],
    supportsProjectSpecificRoles: map['supportsProjectSpecificRoles'],
    backupsEnabled: map['backupsEnabled'],
    usagePerProject: map['usagePerProject'],
    supportedAddons: BillingPlanSupportedAddons.fromMap(
      map['supportedAddons'] ?? <String, dynamic>{},
    ),
    backupPolicies: map['backupPolicies'],
    deploymentSize: map['deploymentSize'],
    buildSize: map['buildSize'],
    functionsIntervalMinimum: map['functionsIntervalMinimum'],
    functionsAllowCron: map['functionsAllowCron'],
    databasesAllowEncrypt: map['databasesAllowEncrypt'],
    limits: map['limits'] != null
        ? BillingPlanLimits.fromMap(
            map['limits'],
          )
        : null,
    group: enums.BillingPlanGroup.values.firstWhere(
      (e) => e.value == map['group'],
    ),
    program: map['program'] != null
        ? Program.fromMap(
            map['program'],
          )
        : null,
    databaseComputeCredit: map['databaseComputeCredit'].toDouble(),
    dedicatedDatabases: map['dedicatedDatabases'] != null
        ? BillingPlanDedicatedDatabaseLimits.fromMap(
            map['dedicatedDatabases'],
          )
        : null,
  );
}