coupon_model.dart 3.7 KB
import 'dart:convert';

import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/models/filter_btn_model.dart';
import 'package:one_key/models/upload_img_model.dart';

import 'dart:convert' as convert;

part 'coupon_model.g.dart';

@JsonSerializable()
class CouponModel extends Object {
  @JsonKey(name: 'ret')
  int ret;

  @JsonKey(name: 'data')
  List<CouponSunModel> data;

  @JsonKey(name: 'msg')
  String msg;

  CouponModel(
    this.ret,
    this.data,
    this.msg,
  );

  factory CouponModel.fromJson(Map<String, dynamic> srcJson) =>
      _$CouponModelFromJson(srcJson);

  Map<String, dynamic> toJson() => _$CouponModelToJson(this);
}

@JsonSerializable()
class CouponSunModel extends Object {
  @JsonKey(name: 'id')
  String id;

  @JsonKey(name: 'uid')
  String uid;

  @JsonKey(name: 'aname')
  String aname;

  @JsonKey(name: 'desc')
  String desc;

  @JsonKey(name: 'stime')
  String stime;

  @JsonKey(name: 'etime')
  String etime;

  @JsonKey(name: 'explain')
  String explain;

  @JsonKey(name: 'status')
  String status;

  @JsonKey(name: 'cdate')
  String cdate;

  @JsonKey(name: 'receive_num')
  String receiveNum;

  @JsonKey(name: 'use_num')
  String useNum;

  @JsonKey(name: 'nickname')
  String nickname;

  @JsonKey(name: 'uid_list')
  String uidList;
  @JsonKey(name: 'is_examine')
  String isExamine;
  @JsonKey(name: 'is_type')
  String isType;

  @JsonKey(name: 'is_open')
  String isOpen;

  @JsonKey(name: 'is_open')
  bool isOpenBool = false;

  @JsonKey(name: 'price')
  dynamic price;

  @JsonKey(name: 'use')
  CouponUse use;

  @JsonKey(name: 'exp_date')
  ExpDate expDate;

  @JsonKey(name: 'nick_name')
  String nickNameShow;

  @JsonKey(name: 'grant_num')
  String grantNum;

  @JsonKey(name: 'urllink')
  String urllink;

  @JsonKey(name: 'lite_qrcode')
  String liteQrcode;

  bool isCheck = false;
  bool showText = false;
  bool isMarking = false;

  CouponSunModel(
      this.id,
      this.uid,
      this.aname,
      this.desc,
      this.stime,
      this.etime,
      this.explain,
      this.status,
      this.cdate,
      this.receiveNum,
      this.useNum,
      this.nickname,
      this.uidList,
      this.isExamine,
      this.isType,
      this.isOpen,
      this.isOpenBool,
      this.price,
      this.use,
      this.expDate,
      this.nickNameShow,
      this.grantNum,
      this.urllink,
      this.liteQrcode);

  factory CouponSunModel.fromJson(Map<String, dynamic> srcJson) =>
      _$CouponSunModelFromJson(srcJson);

  Map<String, dynamic> toJson() => _$CouponSunModelToJson(this);
}

@JsonSerializable()
class CouponUse extends Object {
  @JsonKey(name: 'is_cash')
  bool isCash;

  @JsonKey(name: 'is_discount')
  bool isDiscount;

  @JsonKey(name: 'is_dish')
  bool isDish;

  @JsonKey(name: 'cash')
  String cash;

  @JsonKey(name: 'discount')
  String discount;

  @JsonKey(name: 'dish')
  String dish;

  @JsonKey(name: 'images')
  List<String> images;

  CouponUse(this.isCash, this.isDiscount, this.isDish, this.cash, this.discount,
      this.dish, this.images);

  factory CouponUse.fromJson(Map<String, dynamic> srcJson) =>
      _$CouponUseFromJson(srcJson);

  Map<String, dynamic> toJson() => _$CouponUseToJson(this);
}

@JsonSerializable()
class ExpDate extends Object {
  @JsonKey(name: 'is_none')
  bool isNone;

  @JsonKey(name: 'is_week')
  bool isWeek;

  @JsonKey(name: 'is_birthday')
  bool isBirthday;

  @JsonKey(name: 'week_show')
  String weekShow;

  @JsonKey(name: 'week_data')
  List<FilterBtnModel> weekData;

  ExpDate(
      this.isNone, this.isWeek, this.isBirthday, this.weekShow, this.weekData);

  factory ExpDate.fromJson(Map<String, dynamic> srcJson) =>
      _$ExpDateFromJson(srcJson);

  Map<String, dynamic> toJson() => _$ExpDateToJson(this);
}