table_list.dart 3.81 KB
import 'package:json_annotation/json_annotation.dart';

part 'table_list.g.dart';

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

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

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

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

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

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

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

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

  TableListSunModel(
    this.name,
    this.list,
  );

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

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

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

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

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

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

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

  @JsonKey(name: 'table_pnum')
  String tablePnum;

  @JsonKey(name: 'most_pnum')
  String mostPnum;

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

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

  @JsonKey(name: 'order_o')
  String orderO;

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

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

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

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

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

  @JsonKey(name: 'region_name')
  String regionName;

  String table_pnum; //桌位最少可做人数
  String most_pnum; //桌位最多可做人数
  String low; //最低消费

  //获取桌位类型
  String get tidStr {
    switch (tid) {
      case "1":
        return "散座";
      case "2":
        return "包间";
      case "3":
        return "卡座";
    }
  }

  String reserver; //订餐人
  // String notebookId; //桌位对应的预订id
  bool selected = false; //是否选中
  // String max; //最多可做人数
  String sign; //标签 桌位状态 0:待确认,1:已定座,2:确认到店,3:用餐完成,4:取消预订,5:安排包间,6拒绝订单

  // String get maxText {
  //   if (max == null || max == "0" || max == "null") {
  //     return "";
  //   } else {
  //     return "最多可坐" + max + "人";
  //   }
  // }

  //获取桌位可坐人数
  String get tableNum {
    if (table_pnum == null || table_pnum.isEmpty || table_pnum == "0") {
      return "";
    } else if (most_pnum != null &&
        most_pnum.isNotEmpty &&
        most_pnum != "0" &&
        most_pnum != "null") {
      if (table_pnum == most_pnum) {
        return "$table_pnum人";
      } else {
        return "$table_pnum-$most_pnum人";
      }
    } else {
      return "$table_pnum人";
    }
  }

  //获取最低消费
  String get lowStr {
    return (low == null || low.isEmpty || low == "0") ? "" : "最低消费\n$low元";
  }

  String get signStr {
    if (enable == "0") return "已停用";
    if (sign != null) {
      switch (sign) {
        case "1": //已预订
        case "5": //已安排包间
          return "已预订";
        case "2": //用餐中
          return "用餐中";
        default:
          return "";
      }
    }
    return "";
  }

  TableList(
      this.id,
      this.rid,
      this.sellerid,
      this.name,
      this.qrcode,
      this.tablePnum,
      this.mostPnum,
      this.tid,
      this.hot,
      this.orderO,
      this.status,
      this.enable,
      this.spell,
      this.cdate,
      this.rname,this.regionName);

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

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