/// days : 0
/// rewards : [{"extValues":{"":{}},"rule":{"id":0,"sysOrigin":"","activityType":"","resourceGroupId":0,"jsonData":"","sort":0},"propsGroup":{"id":0,"name":"","shelfStatus":false,"activityRewardProps":[{"id":0,"groupId":0,"type":"","detailType":"","content":"","sort":0,"cover":"","quantity":0,"amount":0.0,"remark":""}]}}]

class SCSignInRes {
  SCSignInRes({num? days, List<Rewards>? rewards}) {
    _days = days;
    _rewards = rewards;
  }

  SCSignInRes.fromJson(dynamic json) {
    _days = json['days'];
    if (json['rewards'] != null) {
      _rewards = [];
      json['rewards'].forEach((v) {
        _rewards?.add(Rewards.fromJson(v));
      });
    }
  }

  num? _days;
  List<Rewards>? _rewards;

  SCSignInRes copyWith({num? days, List<Rewards>? rewards}) =>
      SCSignInRes(days: days ?? _days, rewards: rewards ?? _rewards);

  num? get days => _days;

  List<Rewards>? get rewards => _rewards;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['days'] = _days;
    if (_rewards != null) {
      map['rewards'] = _rewards?.map((v) => v.toJson()).toList();
    }
    return map;
  }
}

/// extValues : {"":{}}
/// rule : {"id":0,"sysOrigin":"","activityType":"","resourceGroupId":0,"jsonData":"","sort":0}
/// propsGroup : {"id":0,"name":"","shelfStatus":false,"activityRewardProps":[{"id":0,"groupId":0,"type":"","detailType":"","content":"","sort":0,"cover":"","quantity":0,"amount":0.0,"remark":""}]}

class Rewards {
  Rewards({Rule? rule, PropsGroup? propsGroup}) {
    _rule = rule;
    _propsGroup = propsGroup;
  }

  Rewards.fromJson(dynamic json) {
    _rule = json['rule'] != null ? Rule.fromJson(json['rule']) : null;
    _propsGroup =
        json['propsGroup'] != null
            ? PropsGroup.fromJson(json['propsGroup'])
            : null;
  }

  Rule? _rule;
  PropsGroup? _propsGroup;

  Rule? get rule => _rule;

  PropsGroup? get propsGroup => _propsGroup;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    if (_rule != null) {
      map['rule'] = _rule?.toJson();
    }
    if (_propsGroup != null) {
      map['propsGroup'] = _propsGroup?.toJson();
    }
    return map;
  }
}

/// id : 0
/// name : ""
/// shelfStatus : false
/// activityRewardProps : [{"id":0,"groupId":0,"type":"","detailType":"","content":"","sort":0,"cover":"","quantity":0,"amount":0.0,"remark":""}]

class PropsGroup {
  PropsGroup({
    String? id,
    String? name,
    bool? shelfStatus,
    List<ActivityRewardProps>? activityRewardProps,
  }) {
    _id = id;
    _name = name;
    _shelfStatus = shelfStatus;
    _activityRewardProps = activityRewardProps;
  }

  PropsGroup.fromJson(dynamic json) {
    _id = json['id'];
    _name = json['name'];
    _shelfStatus = json['shelfStatus'];
    if (json['activityRewardProps'] != null) {
      _activityRewardProps = [];
      json['activityRewardProps'].forEach((v) {
        _activityRewardProps?.add(ActivityRewardProps.fromJson(v));
      });
    }
  }

  String? _id;
  String? _name;
  bool? _shelfStatus;
  List<ActivityRewardProps>? _activityRewardProps;

  String? get id => _id;

  String? get name => _name;

  bool? get shelfStatus => _shelfStatus;

  List<ActivityRewardProps>? get activityRewardProps => _activityRewardProps;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['id'] = _id;
    map['name'] = _name;
    map['shelfStatus'] = _shelfStatus;
    if (_activityRewardProps != null) {
      map['activityRewardProps'] =
          _activityRewardProps?.map((v) => v.toJson()).toList();
    }
    return map;
  }
}

/// id : 0
/// groupId : 0
/// type : ""
/// detailType : ""
/// content : ""
/// sort : 0
/// cover : ""
/// quantity : 0
/// amount : 0.0
/// remark : ""

class ActivityRewardProps {
  ActivityRewardProps({
    String? id,
    String? groupId,
    String? type,
    String? detailType,
    String? content,
    num? sort,
    String? cover,
    num? quantity,
    num? amount,
    String? remark,
  }) {
    _id = id;
    _groupId = groupId;
    _type = type;
    _detailType = detailType;
    _content = content;
    _sort = sort;
    _cover = cover;
    _quantity = quantity;
    _amount = amount;
    _remark = remark;
  }

  ActivityRewardProps.fromJson(dynamic json) {
    _id = json['id'];
    _groupId = json['groupId'];
    _type = json['type'];
    _detailType = json['detailType'];
    _content = json['content'];
    _sort = json['sort'];
    _cover = json['cover'];
    _quantity = json['quantity'];
    _amount = json['amount'];
    _remark = json['remark'];
  }

  String? _id;
  String? _groupId;
  String? _type;
  String? _detailType;
  String? _content;
  num? _sort;
  String? _cover;
  num? _quantity;
  num? _amount;
  String? _remark;

  String? get id => _id;

  String? get groupId => _groupId;

  String? get type => _type;

  String? get detailType => _detailType;

  String? get content => _content;

  num? get sort => _sort;

  String? get cover => _cover;

  num? get quantity => _quantity;

  num? get amount => _amount;

  String? get remark => _remark;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['id'] = _id;
    map['groupId'] = _groupId;
    map['type'] = _type;
    map['detailType'] = _detailType;
    map['content'] = _content;
    map['sort'] = _sort;
    map['cover'] = _cover;
    map['quantity'] = _quantity;
    map['amount'] = _amount;
    map['remark'] = _remark;
    return map;
  }
}

/// id : 0
/// sysOrigin : ""
/// activityType : ""
/// resourceGroupId : 0
/// jsonData : ""
/// sort : 0

class Rule {
  Rule({
    String? id,
    String? sysOrigin,
    String? activityType,
    String? resourceGroupId,
    String? jsonData,
    num? sort,
  }) {
    _id = id;
    _sysOrigin = sysOrigin;
    _activityType = activityType;
    _resourceGroupId = resourceGroupId;
    _jsonData = jsonData;
    _sort = sort;
  }

  Rule.fromJson(dynamic json) {
    _id = json['id'];
    _sysOrigin = json['sysOrigin'];
    _activityType = json['activityType'];
    _resourceGroupId = json['resourceGroupId'];
    _jsonData = json['jsonData'];
    _sort = json['sort'];
  }

  String? _id;
  String? _sysOrigin;
  String? _activityType;
  String? _resourceGroupId;
  String? _jsonData;
  num? _sort;

  String? get id => _id;

  String? get sysOrigin => _sysOrigin;

  String? get activityType => _activityType;

  String? get resourceGroupId => _resourceGroupId;

  String? get jsonData => _jsonData;

  num? get sort => _sort;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['id'] = _id;
    map['sysOrigin'] = _sysOrigin;
    map['activityType'] = _activityType;
    map['resourceGroupId'] = _resourceGroupId;
    map['jsonData'] = _jsonData;
    map['sort'] = _sort;
    return map;
  }
}
