GoalStatus.fromJson constructor

GoalStatus.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory GoalStatus.fromJson(Map<String, dynamic> json) => GoalStatus(
      id: json["_id"] ?? '',
      createdAt: DateTime.tryParse(json["created_at"] ?? '') ?? DateTime(1970),
      goalId: json["goal_id"] ?? '',
      participationId: json["participation_id"] ?? '',
      status: json["status"] ?? '',
      updatedAt: DateTime.tryParse(json["updated_at"] ?? '') ?? DateTime(1970),
      winned: json["winned"] ?? 0,
      winningDates: List<DateTime>.from(
        (json["winning_dates"] ?? []).map(
          (x) => DateTime.tryParse(x.toString()) ?? DateTime(1970),
        ),
      ),
      acceptancesCount: json["acceptances_count"] ?? 0,
      activityTarget: json["activity_target"] ?? '',
      activityTimes: json["activity_times"] ?? 0,
      consolationRewardAmount: json["consolation_reward_amount"] ?? 0,
      consolationRewardId: json["consolation_reward_id"],
      consolationRewardType: json["consolation_reward_type"],
      deleted: json["deleted"] ?? false,
      desc: json["desc"] ?? '',
      enabled: json["enabled"] ?? false,
      endsAt: DateTime.tryParse(json["ends_at"] ?? '') ?? DateTime(1970),
      endedAt: json["ended_at"] != null ? DateTime.tryParse(json["ended_at"].toString()) : null,
      formula: json["formula"] ?? '',
      giveNormalPoints: json["give_normal_points"] ?? false,
      globalAwardedCount: json["global_awarded_count"] ?? 0,
      globalLimit: json["global_limit"] ?? 0,
      image: Image.fromJson(json["image"] ?? {}),
      interval: json["interval"] ?? '',
      intervalSamples: json["interval_samples"] ?? 0,
      limit: json["limit"] ?? 0,
      missionId: json["mission_id"],
      name: json["name"] ?? '',
      participantMetricId: json["participant_metric_id"],
      participantMetricTimeframe: json["participant_metric_timeframe"],
      participantMetricValue: json["participant_metric_value"],
      period: json["period"] ?? '',
      pocketId: json["pocket_id"] ?? '',
      recurrent: json["recurrent"] ?? false,
      requiresAcceptance: json["requires_acceptance"] ?? false,
      rewardType: json["reward_type"] ?? '',
      secondaryMetricExtraPercentage: json["secondary_metric_extra_percentage"] ?? 0,
      secondaryParticipantMetricId: json["secondary_participant_metric_id"],
      secondaryParticipantMetricTimeframe: json["secondary_participant_metric_timeframe"],
      secondaryPocketId: json["secondary_pocket_id"],
      secondaryRewardId: json["secondary_reward_id"],
      secondaryRewardType: json["secondary_reward_type"],
      secondarySponsorId: json["secondary_sponsor_id"],
      secondarySponsorPercentage: json["secondary_sponsor_percentage"] ?? 0,
      sponsorId: json["sponsor_id"] ?? '',
      sponsorPercentage: json["sponsor_percentage"] ?? 0,
      startsAt: DateTime.tryParse(json["starts_at"] ?? '') ?? DateTime(1970),
      tags: List<String>.from((json["tags"] ?? []).map((x) => x.toString())),
      useParticipantMetrics: json["use_participant_metrics"] ?? false,
      rewardName: json["reward_name"] ?? '',
      goalData: (json["goal_data"] is Map)
          ? Map<String, dynamic>.from(json["goal_data"] as Map)
          : {},
      conditionsGoals: (json["conditions"] is List)
          ? List<ConditionGoals>.from(
              json["conditions"].map((x) => ConditionGoals.fromJson(x)),
            )
          : [],
      campaignId: json["campaign_id"]?.toString(),
      conditionsProgress: (json["conditions_progress"] is List)
          ? List<dynamic>.from(json["conditions_progress"])
          : [],
      alwaysAwardConsolationReward: json["always_award_consolation_reward"] ?? false,
      conditionsFailure: json["conditions_failure"] ?? false,
    );