update recipe model
This commit is contained in:
parent
8228a4f46c
commit
b681a5a9af
7 changed files with 301 additions and 114 deletions
|
|
@ -1,54 +1,141 @@
|
||||||
export interface Recipe {
|
export interface Recipe {
|
||||||
|
Timestamp: Date;
|
||||||
|
MachineSetting: MachineSetting;
|
||||||
|
Recipe01: Recipe01[];
|
||||||
|
Topping: Topping;
|
||||||
|
MaterailCode: MaterailCode[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MachineSetting {
|
||||||
|
RecipeTag: string;
|
||||||
|
StrTextShowError: string[];
|
||||||
|
configNumber: string;
|
||||||
|
temperatureMax: string;
|
||||||
|
temperatureMin: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MaterailCode {
|
||||||
|
PackageDescription: string;
|
||||||
|
RefillValuePerStep: string;
|
||||||
|
materialID: string;
|
||||||
|
materialCode: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Recipe01 {
|
||||||
Description: string;
|
Description: string;
|
||||||
ExtendID: number;
|
ExtendID: string;
|
||||||
OnTOP: boolean;
|
OnTOP: string;
|
||||||
LastChange: Date;
|
LastChange: string;
|
||||||
MenuStatus: number;
|
MenuStatus: string;
|
||||||
RemainingCups: string;
|
RemainingCups: string;
|
||||||
StringParam: string;
|
StringParam: string;
|
||||||
TextForWarningBeforePay: string[];
|
TextForWarningBeforePay: string[];
|
||||||
cashPrice: number;
|
cashPrice: string;
|
||||||
changerecipe: string;
|
changerecipe: string;
|
||||||
disable: boolean;
|
disable: string;
|
||||||
disable_by_cup: boolean;
|
disable_by_cup: string;
|
||||||
disable_by_ice: boolean;
|
disable_by_ice: string;
|
||||||
EncoderCount: number;
|
EncoderCount: string;
|
||||||
id: number;
|
id: string;
|
||||||
isUse: boolean;
|
isUse: string;
|
||||||
isShow: boolean;
|
isShow: string;
|
||||||
name: string;
|
name: string;
|
||||||
nonCashPrice: number;
|
nonCashPrice: string;
|
||||||
otherDescription: string;
|
otherDescription: string;
|
||||||
otherName: string;
|
otherName: string;
|
||||||
productCode: string;
|
productCode: string;
|
||||||
recipes: MatRecipe[];
|
recipes: MatRecipe[];
|
||||||
SubMenu: Recipe[];
|
SubMenu: Recipe01[];
|
||||||
ToppingSet: ToppingSet[];
|
ToppingSet: ToppingSet[];
|
||||||
total_time: number;
|
total_time: string;
|
||||||
total_weight: number;
|
total_weight: string;
|
||||||
uriData: string;
|
uriData: string;
|
||||||
useGram: boolean;
|
useGram: string;
|
||||||
weight_float: number;
|
weight_float: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Topping {
|
||||||
|
ToppingGroup: ToppingGroup;
|
||||||
|
ToppingList: ToppingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ToppingGroup {
|
||||||
|
Desc: string;
|
||||||
|
groupID: string;
|
||||||
|
idDefault: string;
|
||||||
|
idInGroup: string;
|
||||||
|
inUse: string;
|
||||||
|
name: string;
|
||||||
|
otherName: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ToppingList {
|
||||||
|
ExtendID: string;
|
||||||
|
OnTOP: string;
|
||||||
|
MenuStatus: string;
|
||||||
|
cashPrice: string;
|
||||||
|
disable: string;
|
||||||
|
disable_by_cup: string;
|
||||||
|
disable_by_ice: string;
|
||||||
|
EncoderCount: string;
|
||||||
|
id: string;
|
||||||
|
isUse: string;
|
||||||
|
isShow: string;
|
||||||
|
stringParam: string;
|
||||||
|
name: string;
|
||||||
|
nonCashPrice: string;
|
||||||
|
otherName: string;
|
||||||
|
productCode: string;
|
||||||
|
recipes: string;
|
||||||
|
total_time: string;
|
||||||
|
total_weight: string;
|
||||||
|
useGram: string;
|
||||||
|
weight_float: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MatRecipe {
|
export interface MatRecipe {
|
||||||
MixOrder: number;
|
MixOrder: string;
|
||||||
FeedParameter: number;
|
FeedParameter: string;
|
||||||
FeedPattern: number;
|
FeedPattern: string;
|
||||||
isUse: boolean;
|
isUse: string;
|
||||||
materialPathId: number;
|
materialPathId: string;
|
||||||
powderGram: number;
|
powderGram: string;
|
||||||
powderTime: number;
|
powderTime: string;
|
||||||
stirTime: number;
|
stirTime: string;
|
||||||
syrupGram: number;
|
syrupGram: string;
|
||||||
syrupTime: number;
|
syrupTime: string;
|
||||||
waterCold: number;
|
waterCold: string;
|
||||||
waterYield: number;
|
waterYield: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ToppingSet {
|
export interface ToppingSet {
|
||||||
ListGroupID: number[];
|
ListGroupID: string;
|
||||||
defaultIDSelect: number;
|
defaultIDSelect: string;
|
||||||
groupID: string;
|
groupID: string;
|
||||||
isUse: boolean;
|
isUse: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MaterialSetting {
|
||||||
|
AlarmIDWhenOffline: string;
|
||||||
|
BeanChannel: string;
|
||||||
|
CanisterType: string;
|
||||||
|
DrainTimer: string;
|
||||||
|
IsEquipment: string;
|
||||||
|
LeavesChannel: string;
|
||||||
|
LowToOffline: string;
|
||||||
|
MaterialStatus: string;
|
||||||
|
PowderChannel: string;
|
||||||
|
RefillUnitGram: string;
|
||||||
|
RefillUnitMilliliters: string;
|
||||||
|
RefillUnitPCS: string;
|
||||||
|
ScheduleDrainType: string;
|
||||||
|
SodaChannel: string;
|
||||||
|
StockAdjust: string;
|
||||||
|
SyrupChannel: string;
|
||||||
|
id: string;
|
||||||
|
idAlternate: string;
|
||||||
|
isUse: string;
|
||||||
|
pay_rettry_max_count: string;
|
||||||
|
feed_mode: string;
|
||||||
|
MaterialParameter: string;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
import { Injectable } from '@angular/core';
|
|
||||||
|
|
||||||
@Injectable({ providedIn: 'root' })
|
|
||||||
export class JwtService {
|
|
||||||
getToken(): string | null {
|
|
||||||
return window.localStorage['jwtToken'];
|
|
||||||
}
|
|
||||||
|
|
||||||
saveToken(token: string): void {
|
|
||||||
window.localStorage['jwtToken'] = token;
|
|
||||||
}
|
|
||||||
|
|
||||||
destroyToken(): void {
|
|
||||||
window.localStorage.removeItem('jwtToken');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
16
client/src/app/core/services/recipe.service.ts
Normal file
16
client/src/app/core/services/recipe.service.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
import { HttpClient } from '@angular/common/http';
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { BehaviorSubject, Observable, distinctUntilChanged } from 'rxjs';
|
||||||
|
import { Recipe } from '../models/recipe.model';
|
||||||
|
import { environment } from 'src/environments/environment';
|
||||||
|
|
||||||
|
@Injectable({ providedIn: 'root' })
|
||||||
|
export class RecipeService {
|
||||||
|
constructor(private _httpClient: HttpClient) {}
|
||||||
|
|
||||||
|
getRecipes(): Observable<Recipe> {
|
||||||
|
return this._httpClient.get<Recipe>(environment.api + '/recipes', {
|
||||||
|
withCredentials: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,7 +5,22 @@
|
||||||
>
|
>
|
||||||
<caption
|
<caption
|
||||||
class="p-5 text-lg font-semibold text-left text-gray-900 bg-primary"
|
class="p-5 text-lg font-semibold text-left text-gray-900 bg-primary"
|
||||||
></caption>
|
>
|
||||||
|
<div class="flex flex-row">
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<span
|
||||||
|
>Recipe Version {{ recipes?.MachineSetting?.configNumber }} |
|
||||||
|
{{"{{File name}}"}}</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col ml-auto">
|
||||||
|
<span class=""
|
||||||
|
>Last Updated:
|
||||||
|
{{ recipes?.Timestamp | date : "dd-MMM-yyyy hh:mm:ss" }}</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</caption>
|
||||||
<thead class="text-xs sticky top-0 text-gray-700 uppercase bg-secondary">
|
<thead class="text-xs sticky top-0 text-gray-700 uppercase bg-secondary">
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col" class="px-6 py-3" *ngFor="let head of tableHeads">
|
<th scope="col" class="px-6 py-3" *ngFor="let head of tableHeads">
|
||||||
|
|
@ -48,19 +63,31 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr
|
<tr
|
||||||
*ngFor="let recipe of recipes"
|
*ngFor="let recipe of recipes!.Recipe01"
|
||||||
class="bg-white la border-b hover:bg-secondary"
|
class="bg-white la border-b hover:bg-secondary"
|
||||||
>
|
>
|
||||||
<th
|
<th
|
||||||
scope="row"
|
scope="row"
|
||||||
class="px-6 py-4 font-medium text-gray-900 whitespace-nowrap dark:text-white"
|
class="px-6 py-4 font-medium text-gray-900 whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ recipe.name }}
|
{{ recipe.name }}
|
||||||
</th>
|
</th>
|
||||||
<td class="px-6 py-4">{{ recipe.otherName }}</td>
|
<td class="px-6 py-4">{{ recipe.otherName }}</td>
|
||||||
<td class="px-6 py-4">{{ recipe.Description }}</td>
|
<td class="px-6 py-4 flex-wrap max-w-xs">{{ recipe.Description }}</td>
|
||||||
<td class="px-6 py-4">{{ recipe.LastChange }}</td>
|
|
||||||
<td class="px-6 py-4">
|
<td class="px-6 py-4">
|
||||||
|
{{ recipe.LastChange | date : "dd-MMM-yyyy hh:mm:ss" }}
|
||||||
|
</td>
|
||||||
|
<td class="px-6 py-4 flex gap-2">
|
||||||
|
<a
|
||||||
|
href="#"
|
||||||
|
class="font-medium text-blue-600 dark:text-blue-500 hover:underline"
|
||||||
|
>Edit</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="#"
|
||||||
|
class="font-medium text-blue-600 dark:text-blue-500 hover:underline"
|
||||||
|
>Edit</a
|
||||||
|
>
|
||||||
<a
|
<a
|
||||||
href="#"
|
href="#"
|
||||||
class="font-medium text-blue-600 dark:text-blue-500 hover:underline"
|
class="font-medium text-blue-600 dark:text-blue-500 hover:underline"
|
||||||
|
|
|
||||||
|
|
@ -2,27 +2,28 @@ import { Component, OnInit } from '@angular/core';
|
||||||
import { UserService } from 'src/app/core/services/user.service';
|
import { UserService } from 'src/app/core/services/user.service';
|
||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { User } from 'src/app/core/models/user.model';
|
import { User } from 'src/app/core/models/user.model';
|
||||||
import { NgFor, NgIf } from '@angular/common';
|
import { DatePipe, NgFor, NgIf } from '@angular/common';
|
||||||
import { initFlowbite } from 'flowbite';
|
import { initFlowbite } from 'flowbite';
|
||||||
import { environment } from 'src/environments/environment';
|
import { environment } from 'src/environments/environment';
|
||||||
import { delay } from 'rxjs';
|
import { delay } from 'rxjs';
|
||||||
import { Recipe } from 'src/app/core/models/recipe.model';
|
import { Recipe } from 'src/app/core/models/recipe.model';
|
||||||
|
import { RecipeService } from 'src/app/core/services/recipe.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dashboard',
|
selector: 'app-dashboard',
|
||||||
standalone: true,
|
standalone: true,
|
||||||
imports: [NgIf, NgFor],
|
imports: [NgIf, NgFor, DatePipe],
|
||||||
templateUrl: './dashboard.component.html',
|
templateUrl: './dashboard.component.html',
|
||||||
})
|
})
|
||||||
export class DashboardComponent implements OnInit {
|
export class DashboardComponent implements OnInit {
|
||||||
userInfo: User | null = null;
|
userInfo: User | null = null;
|
||||||
recipes: Recipe[] | null = null;
|
recipes: Recipe | null = null;
|
||||||
tableHeads: string[] = ['Name', 'Other Name', 'Description', 'Last Updated'];
|
tableHeads: string[] = ['Name', 'Other Name', 'Description', 'Last Updated'];
|
||||||
isLoaded: boolean = false;
|
isLoaded: boolean = false;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private _userService: UserService,
|
private _userService: UserService,
|
||||||
private _httpClient: HttpClient
|
private _recipeService: RecipeService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
|
|
@ -32,14 +33,10 @@ export class DashboardComponent implements OnInit {
|
||||||
this.userInfo = user;
|
this.userInfo = user;
|
||||||
});
|
});
|
||||||
|
|
||||||
this._httpClient
|
this._recipeService.getRecipes().subscribe((recipes) => {
|
||||||
.get<{ Recipe01: Recipe[] }>(environment.api + '/recipes', {
|
this.recipes = recipes;
|
||||||
withCredentials: true,
|
this.isLoaded = true;
|
||||||
})
|
console.log(this.recipes);
|
||||||
.subscribe(({ Recipe01 }) => {
|
});
|
||||||
this.recipes = Recipe01.slice(0, 10);
|
|
||||||
console.log(this.recipes);
|
|
||||||
this.isLoaded = true;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,10 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"recipe-manager/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func readFile() map[string]interface{} {
|
func readFile() *models.Recipe {
|
||||||
file, err := os.Open("data/data.json")
|
file, err := os.Open("data/data.json")
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -16,7 +17,7 @@ func readFile() map[string]interface{} {
|
||||||
|
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
var data map[string]interface{}
|
var data *models.Recipe
|
||||||
|
|
||||||
err = json.NewDecoder(file).Decode(&data)
|
err = json.NewDecoder(file).Decode(&data)
|
||||||
|
|
||||||
|
|
@ -29,7 +30,7 @@ func readFile() map[string]interface{} {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Data struct {
|
type Data struct {
|
||||||
recipe map[string]interface{}
|
recipe *models.Recipe
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewData() *Data {
|
func NewData() *Data {
|
||||||
|
|
@ -38,10 +39,10 @@ func NewData() *Data {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Data) GetRecipe() map[string]interface{} {
|
func (d *Data) GetRecipe() *models.Recipe {
|
||||||
return d.recipe
|
return d.recipe
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Data) GetRecipe01() []interface{} {
|
func (d *Data) GetRecipe01() []models.Recipe01 {
|
||||||
return d.recipe["Recipe01"].([]interface{})
|
return d.recipe.Recipe01
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package models
|
package models
|
||||||
|
|
||||||
type Recipe struct {
|
type Recipe struct {
|
||||||
Timestamps string `json:"timestamps"`
|
Timestamp string `json:"Timestamp"`
|
||||||
MachineSetting MatchineSetting `json:"MachineSetting"`
|
MachineSetting MatchineSetting `json:"MachineSetting"`
|
||||||
Recipe01 []Recipe01 `json:"Recipe01"`
|
Recipe01 []Recipe01 `json:"Recipe01"`
|
||||||
Topping Topping `json:"Topping"`
|
Topping Topping `json:"Topping"`
|
||||||
|
|
@ -23,46 +23,121 @@ type MaterailCode struct {
|
||||||
MaterialCode string `json:"materialCode"`
|
MaterialCode string `json:"materialCode"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// export interface MaterialSetting {
|
|
||||||
// AlarmIDWhenOffline: number;
|
|
||||||
// BeanChannel: boolean;
|
|
||||||
// CanisterType?: string;
|
|
||||||
// DrainTimer: number;
|
|
||||||
// IsEquipment: boolean;
|
|
||||||
// LeavesChannel: boolean;
|
|
||||||
// LowToOffline: number;
|
|
||||||
// MaterialDescrption?: string;
|
|
||||||
// MaterialStatus: number;
|
|
||||||
// PowderChannel: boolean;
|
|
||||||
// RefillUnitGram: boolean;
|
|
||||||
// RefillUnitMilliliters: boolean;
|
|
||||||
// RefillUnitPCS: boolean;
|
|
||||||
// ScheduleDrainType: number;
|
|
||||||
// SodaChannel: boolean;
|
|
||||||
// StockAdjust: number;
|
|
||||||
// StrTextShowError: string[];
|
|
||||||
// SyrupChannel: boolean;
|
|
||||||
// id: number;
|
|
||||||
// idAlternate: number;
|
|
||||||
// isUse: boolean;
|
|
||||||
// materialOtherName: string;
|
|
||||||
// materialName: string;
|
|
||||||
// pathOtherName?: string;
|
|
||||||
// pay_rettry_max_count: number;
|
|
||||||
// RawMaterialUnit?: string;
|
|
||||||
// RawMaterialData?: RawMaterialDatum[];
|
|
||||||
// MaterialComment?: string;
|
|
||||||
// MaterialStatusLastUpdate?: string;
|
|
||||||
// feed_mode?: string;
|
|
||||||
// MaterialParameter?: string;
|
|
||||||
// }
|
|
||||||
|
|
||||||
type MaterialSetting struct {
|
type MaterialSetting struct {
|
||||||
AlarmIDWhenOffline int `json:"AlarmIDWhenOffline"`
|
AlarmIDWhenOffline int `json:"AlarmIDWhenOffline"`
|
||||||
BeanChannel bool `json:"BeanChannel"`
|
BeanChannel bool `json:"BeanChannel"`
|
||||||
CanisterType string `json:"CanisterType"`
|
CanisterType string `json:"CanisterType"`
|
||||||
DrainTimer int `json:"DrainTimer"`
|
DrainTimer int `json:"DrainTimer"`
|
||||||
|
IsEquipment bool `json:"IsEquipment"`
|
||||||
|
LeavesChannel bool `json:"LeavesChannel"`
|
||||||
|
LowToOffline int `json:"LowToOffline"`
|
||||||
|
MaterialStatus int `json:"MaterialStatus"`
|
||||||
|
PowderChannel bool `json:"PowderChannel"`
|
||||||
|
RefillUnitGram bool `json:"RefillUnitGram"`
|
||||||
|
RefillUnitMilliliters bool `json:"RefillUnitMilliliters"`
|
||||||
|
RefillUnitPCS bool `json:"RefillUnitPCS"`
|
||||||
|
ScheduleDrainType int `json:"ScheduleDrainType"`
|
||||||
|
SodaChannel bool `json:"SodaChannel"`
|
||||||
|
StockAdjust int `json:"StockAdjust"`
|
||||||
|
SyrupChannel bool `json:"SyrupChannel"`
|
||||||
|
ID int `json:"id"`
|
||||||
|
IDAlternate int `json:"idAlternate"`
|
||||||
|
IsUse bool `json:"isUse"`
|
||||||
|
PayRettryMaxCount int `json:"pay_rettry_max_count"`
|
||||||
|
FeedMode string `json:"feed_mode"`
|
||||||
|
MaterialParameter string `json:"MaterialParameter"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Recipe01 struct{}
|
type Recipe01 struct {
|
||||||
type Topping struct{}
|
Description string `json:"Description"`
|
||||||
|
ExtendID int `json:"ExtendID"`
|
||||||
|
OnTOP bool `json:"OnTOP"`
|
||||||
|
LastChange string `json:"LastChange"`
|
||||||
|
MenuStatus int `json:"MenuStatus"`
|
||||||
|
RemainingCups string `json:"RemainingCups"`
|
||||||
|
StringParam string `json:"StringParam"`
|
||||||
|
TextForWarningBeforePay []string `json:"TextForWarningBeforePay"`
|
||||||
|
CashPrice int `json:"cashPrice"`
|
||||||
|
Changerecipe string `json:"changerecipe"`
|
||||||
|
Disable bool `json:"disable"`
|
||||||
|
Disable_by_cup bool `json:"disable_by_cup"`
|
||||||
|
Disable_by_ice bool `json:"disable_by_ice"`
|
||||||
|
EncoderCount int `json:"EncoderCount"`
|
||||||
|
ID int `json:"id"`
|
||||||
|
IsUse bool `json:"isUse"`
|
||||||
|
IsShow bool `json:"isShow"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
NonCashPrice int `json:"nonCashPrice"`
|
||||||
|
OtherDescription string `json:"otherDescription"`
|
||||||
|
OtherName string `json:"otherName"`
|
||||||
|
ProductCode string `json:"productCode"`
|
||||||
|
Recipes []MatRecipe `json:"recipes"`
|
||||||
|
SubMenu []Recipe01 `json:"SubMenu"`
|
||||||
|
ToppingSet []ToppingSet `json:"ToppingSet"`
|
||||||
|
Total_time int `json:"total_time"`
|
||||||
|
Total_weight int `json:"total_weight"`
|
||||||
|
UriData string `json:"uriData"`
|
||||||
|
UseGram bool `json:"useGram"`
|
||||||
|
Weight_float int `json:"weight_float"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MatRecipe struct {
|
||||||
|
MixOrder int `json:"MixOrder"`
|
||||||
|
FeedParameter int `json:"FeedParameter"`
|
||||||
|
FeedPattern int `json:"FeedPattern"`
|
||||||
|
IsUse bool `json:"isUse"`
|
||||||
|
MaterialPathId int `json:"materialPathId"`
|
||||||
|
PowderGram int `json:"powderGram"`
|
||||||
|
PowderTime int `json:"powderTime"`
|
||||||
|
StirTime int `json:"stirTime"`
|
||||||
|
SyrupGram int `json:"syrupGram"`
|
||||||
|
SyrupTime int `json:"syrupTime"`
|
||||||
|
WaterCold int `json:"waterCold"`
|
||||||
|
WaterYield int `json:"waterYield"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ToppingSet struct {
|
||||||
|
ListGroupID []int `json:"ListGroupID"`
|
||||||
|
DefaultIDSelect int `json:"defaultIDSelect"`
|
||||||
|
GroupID string `json:"groupID"`
|
||||||
|
IsUse bool `json:"isUse"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Topping struct {
|
||||||
|
ToppingGroup []ToppingGroup `json:"ToppingGroup"`
|
||||||
|
ToppingList []ToppingList `json:"ToppingList"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ToppingGroup struct {
|
||||||
|
Desc string `json:"Desc"`
|
||||||
|
GroupID int `json:"groupID"`
|
||||||
|
IDDefault int `json:"idDefault"`
|
||||||
|
IDInGroup string `json:"idInGroup"`
|
||||||
|
InUse bool `json:"inUse"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
OtherName string `json:"otherName"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ToppingList struct {
|
||||||
|
ExtendID int `json:"ExtendID"`
|
||||||
|
OnTOP bool `json:"OnTOP"`
|
||||||
|
MenuStatus int `json:"MenuStatus"`
|
||||||
|
CashPrice int `json:"cashPrice"`
|
||||||
|
Disable bool `json:"disable"`
|
||||||
|
Disable_by_cup bool `json:"disable_by_cup"`
|
||||||
|
Disable_by_ice bool `json:"disable_by_ice"`
|
||||||
|
EncoderCount int `json:"EncoderCount"`
|
||||||
|
ID int `json:"id"`
|
||||||
|
IsUse bool `json:"isUse"`
|
||||||
|
IsShow bool `json:"isShow"`
|
||||||
|
StringParam string `json:"stringParam"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
NonCashPrice int `json:"nonCashPrice"`
|
||||||
|
OtherName string `json:"otherName"`
|
||||||
|
ProductCode string `json:"productCode"`
|
||||||
|
Recipes []MatRecipe `json:"recipes"`
|
||||||
|
Total_time int `json:"total_time"`
|
||||||
|
Total_weight int `json:"total_weight"`
|
||||||
|
UseGram bool `json:"useGram"`
|
||||||
|
Weight_float int `json:"weight_float"`
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue