guest_reserve_model.dart 3.97 KB
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.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_reserve_model.g.dart';

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

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

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

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

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

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

@JsonSerializable()
class GuestReserveSunModel extends Object {
  @JsonKey(name: 'count')
  Count count;

  @JsonKey(name: 'list')
  List<ListData> list;

  GuestReserveSunModel(
    this.count,
    this.list,
  );

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

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

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

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

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

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

  @JsonKey(name: 'count_money')
  String countMoney;

  @JsonKey(name: 'count_pnum')
  String countPnum;

  @JsonKey(name: 'capita')
  int capita;

  Count(
    this.cumulative,
    this.cancel,
    this.money,
    this.pnum,
    this.countMoney,
    this.countPnum,
    this.capita,
  );

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

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

@JsonSerializable()
class ListData extends Object {
  @JsonKey(name: 'cdate')
  String cdate;

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

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

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

  @JsonKey(name: 'actual_pum')
  String actualPum;

  @JsonKey(name: 'con_amount')
  String conAmount;

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

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

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

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

  String get statusStr {
    switch (status) {
      case "0":
        return "待确认";
        break;
      case "1":
        return "已订座";
        break;
      case "2":
        return "已到店";
        break;
      case "3":
        return "已完成";
        break;
      case "4":
        return "已取消";
        break;
      case "5":
        return "已安排";
        break;
      case "6":
        return "已拒绝";
        break;
    }
    return '';
  }

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

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

  String get tableinfoName {
    if (tableinfo == null) {
      return '';
    }
    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;
  }

  ListData(
    this.cdate,
    this.ddate,
    this.ddateSolt,
    this.tableinfo,
    this.actualPum,
    this.conAmount,
    this.uid,
    this.nickName,
    this.phone,
    this.status,
  );

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

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