guest_info_model.dart 5.88 KB
import 'package:common_utils/common_utils.dart';
import 'package:json_annotation/json_annotation.dart';
import 'dart:convert' as convert;
import 'package:one_key/models/table_list.dart' as t;

part 'guest_info_model.g.dart';

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

  @JsonKey(name: 'data')
  GuestInfoSunModel data;

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

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

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

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

@JsonSerializable()
class GuestInfoSunModel extends Object {
  @JsonKey(name: 'guest')
  Guest guest;

  @JsonKey(name: 'last')
  Last last;

  @JsonKey(name: 'count')
  Count count;

  @JsonKey(name: 'marketing')
  List<Marketing> marketing;

  GuestInfoSunModel(
    this.guest,
    this.last,
    this.count,
    this.marketing,
  );

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

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

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

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

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

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

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

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

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

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

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

  @JsonKey(name: 'position')
  String position;
  @JsonKey(name: 'taboos')
  String taboos;
  @JsonKey(name: 'like')
  String like;
  @JsonKey(name: 'serve')
  String serve;
  @JsonKey(name: 'c_day')
  List<Cday> cDay;
  @JsonKey(name: 'udate')
  String udate;

  @JsonKey(name: 'label')
  String label;
  @JsonKey(name: 'nick_name')
  String nickName;

  String get rnameStr {
    if (rname == null || rname == '') return "";
    return rname;
  }

  String get sexStr {
    if (sex == null || sex == '') return "";
    switch (sex.toString()) {
      case "1": //先生
      case "男":
      case "先生":
        return "先生";
      case "2": //女士
      case "女":
      case "女士":
        return "女士";
      case "3": //公司
      case "公司":
        return "公司";
    }
  }

  Guest(
      this.id,
      this.sellerid,
      this.uid,
      this.rname,
      this.sex,
      this.phone,
      this.attr,
      this.company,
      this.section,
      this.position,
      this.taboos,
      this.like,
      this.serve,
      this.cDay,
      this.udate,
      this.label,
      this.nickName);

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

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

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

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

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

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

  Cday(
    this.id,
    this.gid,
    this.content,
    this.cdate,
  );

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

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

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

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

  @JsonKey(name: 'ddate_solt')
  String ddateSolt;

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

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

  @JsonKey(name: 'seller_user_nick_name')
  String sellerUserNickName;

  @JsonKey(name: 'seller_user_phone')
  String sellerUserPhone;
  @JsonKey(name: 'actual_pum')
  String actualPum;
  @JsonKey(name: 'con_amount')
  String conAmount;

  String get ddateSoltStr {
    switch (ddateSolt) {
      case "1":
        return " 早餐";
        break;
      case "2":
        return " 午餐";
        break;
      case "3":
        return " 晚餐";
        break;
    }
    return '';
  }

  String get tableinfoName {
    List<dynamic> tableinfoList = convert.jsonDecode(tableinfo);
    print(tableinfo);
    String _nameStr = '';

    for (int i = 0; i < tableinfoList.length; i++) {
      _nameStr += '${t.TableList.fromJson(tableinfoList[i]).name},';
    }
    if (_nameStr.endsWith(',')) {
      _nameStr = _nameStr.substring(0, _nameStr.length - 1);
    }
    return _nameStr;
  }

  Last(
      this.id,
      this.ddate,
      this.ddateSolt,
      this.tableinfo,
      this.uid,
      this.sellerUserNickName,
      this.sellerUserPhone,
      this.actualPum,
      this.conAmount);

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

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

@JsonSerializable()
class Count extends Object {
  @JsonKey(name: 'leiji')
  String leiji;

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

  @JsonKey(name: 'create_time')
  dynamic createTime;

  Count(
    this.leiji,
    this.quxiao,
    this.createTime,
  );

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

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

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

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

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

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

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

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

  String get cdateStr {
    DateTime dateTime =
        DateTime.fromMillisecondsSinceEpoch(int.parse(cdate.toString()) * 1000);
    return DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d);
  }

  Marketing(
    this.id,
    this.uid,
    this.aid,
    this.gid,
    this.content,
    this.cdate,
  );

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

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