@posx/core 5.5.572 → 5.5.574

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CLAUDE.md +23 -23
  2. package/LICENSE +21 -21
  3. package/README.md +85 -85
  4. package/build/index.d.ts +4 -0
  5. package/dev/.stfolder/syncthing-folder-9a95b7.txt +5 -0
  6. package/dev/98894488.xlsx +0 -0
  7. package/dev/HappyThaiSembawang.csv +336 -0
  8. package/dev/KB/create-new-model.md +34 -0
  9. package/dev/KB/markdown-lint.md +14 -0
  10. package/dev/KB/object-clone-pitfalls.md +52 -0
  11. package/dev/KB/readmefirst.md +7 -0
  12. package/dev/Merchants/HappyThaiSembawang.csv +400 -0
  13. package/dev/Merchants/HappyThaiSembawang.xlsx +0 -0
  14. package/dev/Merchants/charen_thai/category.csv +20 -0
  15. package/dev/Merchants/charen_thai/charen_thai_xpos.csv +1021 -0
  16. package/dev/Merchants/charen_thai/convert.cjs +194 -0
  17. package/dev/Merchants/charen_thai/item.csv +183 -0
  18. package/dev/Merchants/charen_thai/modifier.csv +664 -0
  19. package/dev/Product_Import_Template.xlsx +0 -0
  20. package/dev/XPOS Invoice Module.pdf +232 -0
  21. package/dev/convert_menu.cjs +134 -0
  22. package/dev/convert_menu.py +127 -0
  23. package/dev/data/invoice.json +1 -0
  24. package/dev/escpos/receipt.bin +0 -0
  25. package/dev/escpos/receipt.hex +1 -0
  26. package/dev/escpos/receipt.json +1 -0
  27. package/dev/escpos-cli-usage.md +103 -0
  28. package/dev/export/xpos_menu.csv +1021 -0
  29. package/dev/export/xpos_menu_bilingual.csv +1021 -0
  30. package/dev/harbor-harness-deployment.md +78 -0
  31. package/dev/incidents/2026-04-01-reprint-timeout.md +33 -0
  32. package/dev/incidents/2026-05-06-searchable-field-design-pitfall.md +37 -0
  33. package/dev/nginx-harbor-harness.conf +84 -0
  34. package/dev/px-cli.md +97 -0
  35. package/dev/test-logs/2026-02.md +5 -0
  36. package/dev/tmp/xpos_product_import(1).csv +338 -0
  37. package/dev/tmp/xpos_product_import_fixed.csv +338 -0
  38. package/dev//344/272/247/345/223/201/345/257/274/345/205/245/346/250/241/346/235/277.xlsx +0 -0
  39. package/jest.config.cjs +36 -36
  40. package/jest.setup.cjs +91 -91
  41. package/package.json +1 -1
  42. package/package.publish.json +121 -121
  43. package/tsdown.config.ts +21 -21
  44. package/vite.config.ts +86 -86
  45. package/AGENTS.md +0 -24
  46. package/memo/technical-docs/01_ARCHITECTURE.md +0 -147
  47. package/memo/technical-docs/02_CORE_BUSINESS.md +0 -292
  48. package/memo/technical-docs/03_UI_COMPONENTS.md +0 -59
  49. package/memo/technical-docs/04_VIEWS.md +0 -82
  50. package/memo/technical-docs/05_DATA_LAYER.md +0 -375
  51. package/memo/technical-docs/06_CROSS_PLATFORM.md +0 -246
  52. package/memo/technical-docs/07_SIMILARITY_INDEX.md +0 -195
  53. package/memo/technical-docs/CHECKPOINT.md +0 -46
  54. package/memo/technical-docs/PROJECT_OVERVIEW.md +0 -122
  55. package/memo/technical-docs/TECHNICAL_DOCS_PLAN.md +0 -77
package/CLAUDE.md CHANGED
@@ -1,24 +1,24 @@
1
- # Claude AI Development Guidelines
2
-
3
- ## Rules you have to follow strictly
4
-
5
- - You are top-notch programmer who always write simplest code to achieve the ideal result
6
- - you are one liner engineers and we believe "The Great Tao is Simple", so try to keep changes small and focused
7
- - keep the changes as minimal as possible
8
- - if or else has one line of code, then { } are not needed and it should be wrote into same line
9
- - DO NOT write uncessary comment do not make newlines within a function and try to make the code compact
10
- - All crucial code should have proper explanation in English
11
- - Keep the simplifications as small and focused within the function or scope.
12
- - Do not overhaul the whole file or codebase which is irrelevant to the current task.
13
-
14
- ## Best Practices for AI-Assisted Development
15
-
16
- 1. **在开始编码前先充分讨论和规划架构,确保理解用户的真实需求和使用场景,避免过度设计。**
17
-
18
- 2. **不要急于提交代码,应该等待用户明确指示后再进行 commit 和 push 操作。**
19
-
20
- 3. **优先选择简洁的实现方式(如函数导出而非类),并删除冗余的中间层方法以保持代码清晰。**
21
-
22
- ---
23
-
1
+ # Claude AI Development Guidelines
2
+
3
+ ## Rules you have to follow strictly
4
+
5
+ - You are top-notch programmer who always write simplest code to achieve the ideal result
6
+ - you are one liner engineers and we believe "The Great Tao is Simple", so try to keep changes small and focused
7
+ - keep the changes as minimal as possible
8
+ - if or else has one line of code, then { } are not needed and it should be wrote into same line
9
+ - DO NOT write uncessary comment do not make newlines within a function and try to make the code compact
10
+ - All crucial code should have proper explanation in English
11
+ - Keep the simplifications as small and focused within the function or scope.
12
+ - Do not overhaul the whole file or codebase which is irrelevant to the current task.
13
+
14
+ ## Best Practices for AI-Assisted Development
15
+
16
+ 1. **在开始编码前先充分讨论和规划架构,确保理解用户的真实需求和使用场景,避免过度设计。**
17
+
18
+ 2. **不要急于提交代码,应该等待用户明确指示后再进行 commit 和 push 操作。**
19
+
20
+ 3. **优先选择简洁的实现方式(如函数导出而非类),并删除冗余的中间层方法以保持代码清晰。**
21
+
22
+ ---
23
+
24
24
  *This file contains guidelines learned from AI-human collaboration to improve development efficiency and code quality.*
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2019 Francisco Hodge
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2019 Francisco Hodge
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,85 +1,85 @@
1
- # 第一阶段
2
- - 1. 创建,更新,删除都是通过 -> Http API
3
- - 2. 读取是通过本地数据库 -> 本地, (例外:订单从云端读取)
4
-
5
- # 第二阶段 (单机版)
6
- 1. 创建,更新,删除,读取都通过本地数据库,然后进行数据和云端同步(Web Worker)
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
- <div align="center">
19
- <img align="center" width="230" src="https://i.imgur.com/iHgtvmg.png" />
20
- <h2>Typescript Library Boilerplate Basic</h2>
21
- <blockquote>Minimal Library Starter Kit for your Typescript projects</blockquote>
22
-
23
- <a href="https://www.npmjs.com/package/@hodgef/ts-library-boilerplate-basic"><img src="https://badgen.net/npm/v/@hodgef/ts-library-boilerplate-basic?color=blue" alt="npm version"></a> <a href="https://github.com/hodgef/ts-library-boilerplate"><img src="https://img.shields.io/github/last-commit/hodgef/ts-library-boilerplate" alt="latest commit"></a> <a href="https://github.com/hodgef/ts-library-boilerplate-basic/actions"><img alt="Build Status" src="https://github.com/hodgef/ts-library-boilerplate-basic/workflows/Build/badge.svg?color=green" /></a> <a href="https://github.com/hodgef/ts-library-boilerplate-basic/actions"> <img alt="Publish Status" src="https://github.com/hodgef/ts-library-boilerplate-basic/workflows/Publish/badge.svg?color=green" /></a>
24
-
25
- <strong>For a plain Javascript alternative, check out [js-library-boilerplate-basic](https://github.com/hodgef/js-library-boilerplate-basic).</strong>
26
-
27
- </div>
28
-
29
- ## ⭐️ Features
30
-
31
- - Webpack 5
32
- - Babel 7
33
- - Hot reloading (`npm start`)
34
- - Automatic Types file generation (index.d.ts)
35
- - UMD exports, so your library works everywhere.
36
- - Jest unit testing
37
- - Customizable file headers for your build [(Example 1)](https://github.com/hodgef/ts-library-boilerplate-basic/blob/master/build/index.js) [(Example2)](https://github.com/hodgef/ts-library-boilerplate-basic/blob/master/build/css/index.css)
38
- - Daily [dependabot](https://dependabot.com) dependency updates
39
-
40
- ## 📦 Getting Started
41
-
42
- ```
43
- git clone https://github.com/hodgef/ts-library-boilerplate-basic.git myLibrary
44
- npm install
45
- ```
46
-
47
- ## 💎 Customization
48
-
49
- > Before shipping, make sure to:
50
-
51
- 1. Edit `LICENSE` file
52
- 2. Edit `package.json` information (These will be used to generate the headers for your built files)
53
- 3. Edit `library: "MyLibrary"` with your library's export name in `./webpack.config.js`
54
-
55
- ## 🚀 Deployment
56
-
57
- 1. `npm publish`
58
- 2. Your users can include your library as usual
59
-
60
- ### npm
61
-
62
- ```
63
- import MyLibrary from 'my-library';
64
- const libraryInstance = new MyLibrary();
65
- ...
66
- ```
67
-
68
- ### self-host/cdn
69
-
70
- ```
71
- <script src="build/index.js"></script>
72
-
73
- const MyLibrary = window.MyLibrary.default;
74
- const libraryInstance = new MyLibrary();
75
- ...
76
- ```
77
-
78
- ## ✅ Libraries built with this boilerplate
79
-
80
- > Made a library using this starter kit? Share it here by [submitting a pull request](https://github.com/hodgef/ts-library-boilerplate-basic/pulls)!
81
-
82
- - [simple-keyboard](https://github.com/hodgef/simple-keyboard) - Javascript Virtual Keyboard
83
- - [react-simple-keyboard](https://github.com/hodgef/react-simple-keyboard) - React Virtual Keyboard
84
- - [simple-keyboard-layouts](https://github.com/hodgef/simple-keyboard-layouts) - Keyboard layouts for simple-keyboard
85
- - [atlas-monaco](https://github.com/datdao/atlas-monaco) - AtlasHCL for monaco editor
1
+ # 第一阶段
2
+ - 1. 创建,更新,删除都是通过 -> Http API
3
+ - 2. 读取是通过本地数据库 -> 本地, (例外:订单从云端读取)
4
+
5
+ # 第二阶段 (单机版)
6
+ 1. 创建,更新,删除,读取都通过本地数据库,然后进行数据和云端同步(Web Worker)
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+ <div align="center">
19
+ <img align="center" width="230" src="https://i.imgur.com/iHgtvmg.png" />
20
+ <h2>Typescript Library Boilerplate Basic</h2>
21
+ <blockquote>Minimal Library Starter Kit for your Typescript projects</blockquote>
22
+
23
+ <a href="https://www.npmjs.com/package/@hodgef/ts-library-boilerplate-basic"><img src="https://badgen.net/npm/v/@hodgef/ts-library-boilerplate-basic?color=blue" alt="npm version"></a> <a href="https://github.com/hodgef/ts-library-boilerplate"><img src="https://img.shields.io/github/last-commit/hodgef/ts-library-boilerplate" alt="latest commit"></a> <a href="https://github.com/hodgef/ts-library-boilerplate-basic/actions"><img alt="Build Status" src="https://github.com/hodgef/ts-library-boilerplate-basic/workflows/Build/badge.svg?color=green" /></a> <a href="https://github.com/hodgef/ts-library-boilerplate-basic/actions"> <img alt="Publish Status" src="https://github.com/hodgef/ts-library-boilerplate-basic/workflows/Publish/badge.svg?color=green" /></a>
24
+
25
+ <strong>For a plain Javascript alternative, check out [js-library-boilerplate-basic](https://github.com/hodgef/js-library-boilerplate-basic).</strong>
26
+
27
+ </div>
28
+
29
+ ## ⭐️ Features
30
+
31
+ - Webpack 5
32
+ - Babel 7
33
+ - Hot reloading (`npm start`)
34
+ - Automatic Types file generation (index.d.ts)
35
+ - UMD exports, so your library works everywhere.
36
+ - Jest unit testing
37
+ - Customizable file headers for your build [(Example 1)](https://github.com/hodgef/ts-library-boilerplate-basic/blob/master/build/index.js) [(Example2)](https://github.com/hodgef/ts-library-boilerplate-basic/blob/master/build/css/index.css)
38
+ - Daily [dependabot](https://dependabot.com) dependency updates
39
+
40
+ ## 📦 Getting Started
41
+
42
+ ```
43
+ git clone https://github.com/hodgef/ts-library-boilerplate-basic.git myLibrary
44
+ npm install
45
+ ```
46
+
47
+ ## 💎 Customization
48
+
49
+ > Before shipping, make sure to:
50
+
51
+ 1. Edit `LICENSE` file
52
+ 2. Edit `package.json` information (These will be used to generate the headers for your built files)
53
+ 3. Edit `library: "MyLibrary"` with your library's export name in `./webpack.config.js`
54
+
55
+ ## 🚀 Deployment
56
+
57
+ 1. `npm publish`
58
+ 2. Your users can include your library as usual
59
+
60
+ ### npm
61
+
62
+ ```
63
+ import MyLibrary from 'my-library';
64
+ const libraryInstance = new MyLibrary();
65
+ ...
66
+ ```
67
+
68
+ ### self-host/cdn
69
+
70
+ ```
71
+ <script src="build/index.js"></script>
72
+
73
+ const MyLibrary = window.MyLibrary.default;
74
+ const libraryInstance = new MyLibrary();
75
+ ...
76
+ ```
77
+
78
+ ## ✅ Libraries built with this boilerplate
79
+
80
+ > Made a library using this starter kit? Share it here by [submitting a pull request](https://github.com/hodgef/ts-library-boilerplate-basic/pulls)!
81
+
82
+ - [simple-keyboard](https://github.com/hodgef/simple-keyboard) - Javascript Virtual Keyboard
83
+ - [react-simple-keyboard](https://github.com/hodgef/react-simple-keyboard) - React Virtual Keyboard
84
+ - [simple-keyboard-layouts](https://github.com/hodgef/simple-keyboard-layouts) - Keyboard layouts for simple-keyboard
85
+ - [atlas-monaco](https://github.com/datdao/atlas-monaco) - AtlasHCL for monaco editor
package/build/index.d.ts CHANGED
@@ -3262,6 +3262,7 @@ type CreateInvoiceOptions = {
3262
3262
  invoice: IInvoice;
3263
3263
  section_item: ISectionItem;
3264
3264
  print_jobs?: IPrintJob[];
3265
+ items?: IItem[];
3265
3266
  };
3266
3267
  type CancelInvoiceOptions = CreateInvoiceOptions & {
3267
3268
  print_jobs?: IPrintJob[];
@@ -3274,12 +3275,15 @@ type SwitchInvoiceOptions = {
3274
3275
  invoice: IInvoice;
3275
3276
  target_section_item: ISectionItem;
3276
3277
  source_section_item: ISectionItem;
3278
+ print_jobs?: IPrintJob[];
3279
+ items?: IItem[];
3277
3280
  };
3278
3281
  type VoidInvoiceOptions = {
3279
3282
  invoice: IInvoice;
3280
3283
  till: ITill;
3281
3284
  print_jobs?: IPrintJob[];
3282
3285
  section_item?: ISectionItem;
3286
+ items?: IItem[];
3283
3287
  };
3284
3288
  type PayInvoiceOptions = VoidInvoiceOptions & {
3285
3289
  section_item: ISectionItem;
@@ -0,0 +1,5 @@
1
+ # This directory is a Syncthing folder marker.
2
+ # Do not delete.
3
+
4
+ folderID: kxmo2-tcjhp
5
+ created: 2026-01-20T12:54:33+08:00
Binary file
@@ -0,0 +1,336 @@
1
+ Type,Name,SKU,Price,Stock,Is Internal,Min Order,Max Order,Image URL,Thumbnail URL,Sequence
2
+ category,Appetiser,,,,,,,,,
3
+ product,A1. Cashew Nut Special,,8.9,,FALSE,,,,,
4
+ product,A2. Spring Roll (8 Pieces),,6.9,,FALSE,,,,,
5
+ product,A3. Thai Fish Cake (5 Pieces),,6.9,,FALSE,,,,,
6
+ product,A4. Thai Prawn Cake (4 Pieces),,13.9,,FALSE,,,,,
7
+ product,A5. Pandan Chicken (3 Pieces),,8.9,,FALSE,,,,,
8
+ product,A6. Deep Fried Chicken Wing (4 Pieces),,9.9,,FALSE,,,,,
9
+ product,A7. Tom Yum Chicken Wing (4 Pieces),,11.9,,FALSE,,,,,
10
+ product,A8. Stuffed Chicken Wing (3 Pieces),,12.9,,FALSE,,,,,
11
+ product,A9. Grill Pork Ball (3 Sticks),,12.9,,FALSE,,,,,
12
+ product,A10. Grill Beef Ball (3 Sticks),,14.9,,FALSE,,,,,
13
+ product,A11. Issan Sour Sausage,,10.9,,FALSE,,,,,
14
+ product,A12. Fried Pork Neck,,10.9,,FALSE,,,,,
15
+ product,A13. Moo Ping (4 Sticks),,11.9,,FALSE,,,,,
16
+ product,A14. Deep Fried Mini Crab with Prapika,,11.9,,FALSE,,,,,
17
+ product,Takeaway,,0.3,,TRUE,,,,,
18
+ category,Salad,,,,,,,,,
19
+ product,SA1. Mango Salad,,7.9,,FALSE,,,,,
20
+ modifier_category,Spice Level,,,,,0,1,,,
21
+ modifier,Non Spicy,,,,,,,,,
22
+ modifier,Less Spicy,,,,,,,,,
23
+ modifier,More Spicy,,,,,,,,,
24
+ product,SA2. Payaya Salad,,7.9,,FALSE,,,,,
25
+ modifier_category,Spice Level,,,,,0,1,,,
26
+ modifier,Non Spicy,,,,,,,,,
27
+ modifier,Less Spicy,,,,,,,,,
28
+ modifier,More Spicy,,,,,,,,,
29
+ product,SA3. Papaya Salad (Pu Plalaa),,9.9,,FALSE,,,,,
30
+ modifier_category,Spice Level,,,,,0,1,,,
31
+ modifier,Non Spicy,,,,,,,,,
32
+ modifier,Less Spicy,,,,,,,,,
33
+ modifier,More Spicy,,,,,,,,,
34
+ product,SA4. Corn Salad with Salted Egg,,9.9,,FALSE,,,,,
35
+ modifier_category,Spice Level,,,,,0,1,,,
36
+ modifier,Non Spicy,,,,,,,,,
37
+ modifier,Less Spicy,,,,,,,,,
38
+ modifier,More Spicy,,,,,,,,,
39
+ product,SA5. Payaya Salad with Salted Egg,,9.9,,FALSE,,,,,
40
+ modifier_category,Spice Level,,,,,0,1,,,
41
+ modifier,Non Spicy,,,,,,,,,
42
+ modifier,Less Spicy,,,,,,,,,
43
+ modifier,More Spicy,,,,,,,,,
44
+ product,SA6. Glass Noodle Seafood Salad,,12.9,,FALSE,,,,,
45
+ modifier_category,Spice Level,,,,,0,1,,,
46
+ modifier,Non Spicy,,,,,,,,,
47
+ modifier,Less Spicy,,,,,,,,,
48
+ modifier,More Spicy,,,,,,,,,
49
+ product,SA7. Miced Pork Salad,,12.9,,FALSE,,,,,
50
+ modifier_category,Spice Level,,,,,0,1,,,
51
+ modifier,Non Spicy,,,,,,,,,
52
+ modifier,Less Spicy,,,,,,,,,
53
+ modifier,More Spicy,,,,,,,,,
54
+ product,SA8. Pork Neck Salad,,13.9,,FALSE,,,,,
55
+ modifier_category,Spice Level,,,,,0,1,,,
56
+ modifier,Non Spicy,,,,,,,,,
57
+ modifier,Less Spicy,,,,,,,,,
58
+ modifier,More Spicy,,,,,,,,,
59
+ product,SA9. Prawn with Fish Sauce,,13.9,,FALSE,,,,,
60
+ product,SA10. Flower crab Mango Salad,,16.9,,FALSE,,,,,
61
+ modifier_category,Spice Level,,,,,0,1,,,
62
+ modifier,Non Spicy,,,,,,,,,
63
+ modifier,Less Spicy,,,,,,,,,
64
+ modifier,More Spicy,,,,,,,,,
65
+ product,SA11. Flower crab Papaya Salad,,16.9,,FALSE,,,,,
66
+ modifier_category,Spice Level,,,,,0,1,,,
67
+ modifier,Non Spicy,,,,,,,,,
68
+ modifier,Less Spicy,,,,,,,,,
69
+ modifier,More Spicy,,,,,,,,,
70
+ product,SA12. Fresh Oyster with Seafood Sauce (4pcs),,16.9,,FALSE,,,,,
71
+ product,SA13. Salmon Salad,,16.9,,FALSE,,,,,
72
+ modifier_category,Spice Level,,,,,0,1,,,
73
+ modifier,Non Spicy,,,,,,,,,
74
+ modifier,Less Spicy,,,,,,,,,
75
+ modifier,More Spicy,,,,,,,,,
76
+ product,Takeaway,,0.3,,TRUE,,,,,
77
+ category,Soup,,,,,,,,,
78
+ product,S1. Tofu with Minced Pork Soup,,8.9,,FALSE,,,,,
79
+ product,S2. Tom Saap Chicken,,7.9,,FALSE,,,,,
80
+ product,S3. Tom Saap Chicken - Firepot,,15.9,,FALSE,,,,,
81
+ product,S4. Tom Saap Pork,,8.9,,FALSE,,,,,
82
+ product,S5. Tom Saap Pork - Firepot,,16.9,,FALSE,,,,,
83
+ product,S6. Tom Kha Kai,,8.9,,FALSE,,,,,
84
+ product,S7. Tom Kha Kai - Firepot,,16.9,,FALSE,,,,,
85
+ product,S8. Tom Yum Clear Soup Seafood,,8.9,,FALSE,,,,,
86
+ product,S9. Tom Yum Clear Soup Seafood - Firepot,,17.9,,FALSE,,,,,
87
+ product,S10. Tom Yum Red Soup Seafood,,8.9,,FALSE,,,,,
88
+ product,S11. Tom Yum Red Soup Seafood - Firepot,,17.9,,FALSE,,,,,
89
+ product,S12. Fish Maw Soup with Crab Meat,,18.9,,FALSE,,,,,
90
+ product,Takeaway,,0.3,,TRUE,,,,,
91
+ category,Curry,,,,,,,,,
92
+ product,C1. Green Curry Chicken,,8.9,,FALSE,,,,,
93
+ product,C2. Green Curry Beef,,9.9,,FALSE,,,,,
94
+ product,C3. Masaman Chicken,,11.9,,FALSE,,,,,
95
+ product,Takeaway,,0.3,,TRUE,,,,,
96
+ category,Kids Menu,,,,,,,,,
97
+ product,K1. French Fries,,3.9,,FALSE,,,,,
98
+ product,K2. Chicken Nugget (5 Pieces),,4.9,,FALSE,,,,,
99
+ product,K3. Egg Fried Rice,,6.9,,FALSE,,,,,
100
+ product,Takeaway,,0.3,,TRUE,,,,,
101
+ category,Egg and Tofu,,,,,,,,,
102
+ product,TE1. Deep Fried Tofu,,6.9,,FALSE,,,,,
103
+ product,TE2. Deep Fried Tofu with Honey,,6.9,,FALSE,,,,,
104
+ product,TE3. Deep Fried Tofu with Tom Yum,,6.9,,FALSE,,,,,
105
+ product,TE4. Stir Fry Beancurd with Beansprouts,,9.9,,FALSE,,,,,
106
+ product,TE5. Chicken Omelette,,7.9,,FALSE,,,,,
107
+ product,TE6. Pork Omelette,,7.9,,FALSE,,,,,
108
+ product,TE7. Prawn Omelette,,8.9,,FALSE,,,,,
109
+ product,TE8. Crab Meat Omelette,,12.9,,FALSE,,,,,
110
+ product,TE9. Soft Crab Meat Omelette,,12.9,,FALSE,,,,,
111
+ product,Takeaway,,0.3,,TRUE,,,,,
112
+ category,Vegetables,,,,,,,,,
113
+ product,V1. Cabbage with Thai Fish Sauce,,10.9,,FALSE,,,,,
114
+ modifier_category,Spice Level,,,,,0,1,,,
115
+ modifier,Non Spicy,,,,,,,,,
116
+ modifier,Less Spicy,,,,,,,,,
117
+ modifier,More Spicy,,,,,,,,,
118
+ product,V2. Cabbage with Soy Sauce,,10.9,,FALSE,,,,,
119
+ modifier_category,Spice Level,,,,,0,1,,,
120
+ modifier,Non Spicy,,,,,,,,,
121
+ modifier,Less Spicy,,,,,,,,,
122
+ modifier,More Spicy,,,,,,,,,
123
+ product,V3. Thai Style Stir Fry Kangkong,,10.9,,FALSE,,,,,
124
+ modifier_category,Spice Level,,,,,0,1,,,
125
+ modifier,Non Spicy,,,,,,,,,
126
+ modifier,Less Spicy,,,,,,,,,
127
+ modifier,More Spicy,,,,,,,,,
128
+ product,V4. Thai Style Stir Fry Kangkong with Soy Sauce,,10.9,,FALSE,,,,,
129
+ modifier_category,Spice Level,,,,,0,1,,,
130
+ modifier,Non Spicy,,,,,,,,,
131
+ modifier,Less Spicy,,,,,,,,,
132
+ modifier,More Spicy,,,,,,,,,
133
+ product,V5. Kailan with Oyster Sauce,,10.9,,FALSE,,,,,
134
+ product,V6. Kailan with Soy Sauce,,10.9,,FALSE,,,,,
135
+ product,V7. Mixed Vegetables,,10.9,,FALSE,,,,,
136
+ product,V8. Mixed Vegetables with Soy Sauce,,10.9,,FALSE,,,,,
137
+ product,V9. Stir Fry Broccoli with Prawns,,12.9,,FALSE,,,,,
138
+ product,V10. Kailan with Salted Fish,,11.9,,FALSE,,,,,
139
+ product,V11. Kailan with Crispy Pork,,12.9,,FALSE,,,,,
140
+ product,V12. Basil Tofu,,12.9,,FALSE,,,,,
141
+ modifier_category,Spice Level,,,,,0,1,,,
142
+ modifier,Non Spicy,,,,,,,,,
143
+ modifier,Less Spicy,,,,,,,,,
144
+ modifier,More Spicy,,,,,,,,,
145
+ product,V13. Plant-based Basil Pork,,14.9,,FALSE,,,,,
146
+ modifier_category,Spice Level,,,,,0,1,,,
147
+ modifier,Non Spicy,,,,,,,,,
148
+ modifier,Less Spicy,,,,,,,,,
149
+ modifier,More Spicy,,,,,,,,,
150
+ product,V14. Plant-based Basil Beef (Impossible Beef),,15.9,,FALSE,,,,,
151
+ modifier_category,Spice Level,,,,,0,1,,,
152
+ modifier,Non Spicy,,,,,,,,,
153
+ modifier,Less Spicy,,,,,,,,,
154
+ modifier,More Spicy,,,,,,,,,
155
+ product,Takeaway,,0.3,,TRUE,,,,,
156
+ category,Meat,,,,,,,,,
157
+ product,M1. Grill Spring Chicken (Half),,10.9,,FALSE,,,,,
158
+ product,M1A. Grill Spring Chicken (Whole),,18.9,,FALSE,,,,,
159
+ product,M2. Garlic Fried Chicken,,13.9,,FALSE,,,,,
160
+ product,M3. Garlic Fried Pork,,13.9,,FALSE,,,,,
161
+ product,M4. Garlic Fried Pork Belly,,14.9,,FALSE,,,,,
162
+ product,M5. Honey Chicken,,13.9,,FALSE,,,,,
163
+ product,M6. Basil Chicken,,13.9,,FALSE,,,,,
164
+ modifier_category,Spice Level,,,,,0,1,,,
165
+ modifier,Non Spicy,,,,,,,,,
166
+ modifier,Less Spicy,,,,,,,,,
167
+ modifier,More Spicy,,,,,,,,,
168
+ product,M7. Basil Pork,,13.9,,FALSE,,,,,
169
+ modifier_category,Spice Level,,,,,0,1,,,
170
+ modifier,Non Spicy,,,,,,,,,
171
+ modifier,Less Spicy,,,,,,,,,
172
+ modifier,More Spicy,,,,,,,,,
173
+ product,M8. Basil Beef,,14.9,,FALSE,,,,,
174
+ modifier_category,Spice Level,,,,,0,1,,,
175
+ modifier,Non Spicy,,,,,,,,,
176
+ modifier,Less Spicy,,,,,,,,,
177
+ modifier,More Spicy,,,,,,,,,
178
+ product,M9. Basil Crispy Pork,,14.9,,FALSE,,,,,
179
+ modifier_category,Spice Level,,,,,0,1,,,
180
+ modifier,Non Spicy,,,,,,,,,
181
+ modifier,Less Spicy,,,,,,,,,
182
+ modifier,More Spicy,,,,,,,,,
183
+ product,M10. Stir Fry Chicken with Cashew Nut,,13.9,,FALSE,,,,,
184
+ product,M11. Pork Leg,,15.9,,FALSE,,,,,
185
+ product,M12. Stir-Fried Beef with Oyster Sauce,,13.9,,FALSE,,,,,
186
+ product,M13. Stir-Fried Beef with Black Pepper Sauce,,13.9,,FALSE,,,,,
187
+ product,M14. Deep-Fried Thai Sun-Dried Pork,,15.9,,FALSE,,,,,
188
+ product,Takeaway,,0.3,,TRUE,,,,,
189
+ category,Seafood,,,,,,,,,
190
+ product,SF1. Garlic Fried Prawn,,16.9,,FALSE,,,,,
191
+ product,SF2. Spicy Salt and Chilli Prawns,,16.9,,FALSE,,,,,
192
+ modifier_category,Spice Level,,,,,0,1,,,
193
+ modifier,Non Spicy,,,,,,,,,
194
+ modifier,Less Spicy,,,,,,,,,
195
+ modifier,More Spicy,,,,,,,,,
196
+ product,SF3. Basil Seafood,,15.9,,FALSE,,,,,
197
+ modifier_category,Spice Level,,,,,0,1,,,
198
+ modifier,Non Spicy,,,,,,,,,
199
+ modifier,Less Spicy,,,,,,,,,
200
+ modifier,More Spicy,,,,,,,,,
201
+ product,SF4. Basil Lala,,15.9,,FALSE,,,,,
202
+ modifier_category,Spice Level,,,,,0,1,,,
203
+ modifier,Non Spicy,,,,,,,,,
204
+ modifier,Less Spicy,,,,,,,,,
205
+ modifier,More Spicy,,,,,,,,,
206
+ product,SF5. Stir Fry Seafood with Special Chilli,,15.9,,FALSE,,,,,
207
+ product,SF6. Stir Fry Prawn with Special Chilli and Petai,,17.9,,FALSE,,,,,
208
+ product,SF7. Baked Glass Noodle with Prawn,,17.9,,FALSE,,,,,
209
+ product,SF8. Baked Glass Noodle with Crab Meat,,20.9,,FALSE,,,,,
210
+ product,SF9. Steam Squid with Lime and Chilli,,17.9,,FALSE,,,,,
211
+ product,SF10. Deep Fried Sotong,,15.9,,FALSE,,,,,
212
+ product,SF11. Grilled Whole Sotong,,16.9,,FALSE,,,,,
213
+ product,SF12. Cockles with Thai Seafood Chilli,,12.9,,FALSE,,,,,
214
+ product,SF13. Thai Otah Seafood In Coconut,,17.9,,FALSE,,,,,
215
+ product,SF14. Deep Fried Seabass with Garlic,,29.9,,FALSE,,,,,
216
+ product,SF15. Deep Fried Seabass with Sweet and Sour Sauce,,29.9,,FALSE,,,,,
217
+ product,SF16. Deep Fried Seabass with Thai Fish Sauce,,29.9,,FALSE,,,,,
218
+ product,SF17. Grill Seabass with Salt,,29.9,,FALSE,,,,,
219
+ product,SF18. Steam Seabass with Lime and Chilli,,29.9,,FALSE,,,,,
220
+ product,SF19. Steam Seabass with Soy Sauce,,29.9,,FALSE,,,,,
221
+ product,SF20. Phad Cha Seabass Slices,,15.9,,FALSE,,,,,
222
+ product,Takeaway,,0.3,,TRUE,,,,,
223
+ category,Rice Dishes,,,,,,,,,
224
+ product,R1. Basil Tofu with Rice and Fried Egg,,7.9,,FALSE,,,,,
225
+ modifier_category,Spice Level,,,,,0,1,,,
226
+ modifier,Non Spicy,,,,,,,,,
227
+ modifier,Less Spicy,,,,,,,,,
228
+ modifier,More Spicy,,,,,,,,,
229
+ product,R2. Basil Chicken with Rice and Fried Egg,,8.9,,FALSE,,,,,
230
+ modifier_category,Spice Level,,,,,0,1,,,
231
+ modifier,Non Spicy,,,,,,,,,
232
+ modifier,Less Spicy,,,,,,,,,
233
+ modifier,More Spicy,,,,,,,,,
234
+ product,R3. Basil Pork with Rice and Fried Egg,,8.9,,FALSE,,,,,
235
+ modifier_category,Spice Level,,,,,0,1,,,
236
+ modifier,Non Spicy,,,,,,,,,
237
+ modifier,Less Spicy,,,,,,,,,
238
+ modifier,More Spicy,,,,,,,,,
239
+ product,R4. Basil Crispy Pork with Rice and Fried Egg,,9.9,,FALSE,,,,,
240
+ modifier_category,Spice Level,,,,,0,1,,,
241
+ modifier,Non Spicy,,,,,,,,,
242
+ modifier,Less Spicy,,,,,,,,,
243
+ modifier,More Spicy,,,,,,,,,
244
+ product,R5. Basil Beef with Rice and Fried Egg,,9.9,,FALSE,,,,,
245
+ modifier_category,Spice Level,,,,,0,1,,,
246
+ modifier,Non Spicy,,,,,,,,,
247
+ modifier,Less Spicy,,,,,,,,,
248
+ modifier,More Spicy,,,,,,,,,
249
+ product,R6. Basil Seafood with Rice and Fried Egg,,9.9,,FALSE,,,,,
250
+ modifier_category,Spice Level,,,,,0,1,,,
251
+ modifier,Non Spicy,,,,,,,,,
252
+ modifier,Less Spicy,,,,,,,,,
253
+ modifier,More Spicy,,,,,,,,,
254
+ product,R7. Garlic Chicken with Rice and Fried Egg,,8.9,,FALSE,,,,,
255
+ product,R8. Garlic Pork with Rice and Fried Egg,,8.9,,FALSE,,,,,
256
+ product,R9. Garlic Prawn with Rice and Fried Egg,,9.9,,FALSE,,,,,
257
+ product,R10. Honey Chicken with Rice and Fried Egg,,8.9,,FALSE,,,,,
258
+ product,R11. Pork Leg with Rice,,8.9,,FALSE,,,,,
259
+ product,R12. Thai Fish with Belacan Chilli and Rice,,9.9,,FALSE,,,,,
260
+ product,Takeaway,,0.3,,TRUE,,,,,
261
+ category,Fried Rice,,,,,,,,,
262
+ product,F1. Thai Style Fried Rice,,8.9,,FALSE,,,,,
263
+ product,F2. Chicken Fried Rice,,8.9,,FALSE,,,,,
264
+ product,F3. Pork Fried Rice,,8.9,,FALSE,,,,,
265
+ product,F4. Olive Fried Rice Chicken,,8.9,,FALSE,,,,,
266
+ product,F5. Olive Fried Rice Seafood,,9.9,,FALSE,,,,,
267
+ product,F6. Belacan Fried Rice Seafood,,9.9,,FALSE,,,,,
268
+ product,F7. Pineapple Fried Rice Seafood,,9.9,,FALSE,,,,,
269
+ product,F8. Seafood Fried Rice,,9.9,,FALSE,,,,,
270
+ product,F9. Tom Yum Fried Rice Seafood,,9.9,,FALSE,,,,,
271
+ product,F10. Crab Meat Fried Rice,,12.9,,FALSE,,,,,
272
+ product,Takeaway,,0.3,,TRUE,,,,,
273
+ category,Noodles - Dry,,,,,,,,,
274
+ product,ND1. Phad see Ew (Kway Teow) Pork,,8.9,,FALSE,,,,,
275
+ product,ND2. Phad see Ew (Kway Teow) Seafood,,9.9,,FALSE,,,,,
276
+ product,ND3. Phad Thai Chicken,,8.9,,FALSE,,,,,
277
+ product,ND4. Phad Thai Seafood,,9.9,,FALSE,,,,,
278
+ product,ND5. Phad Mama (Maggie Mee) Seafood,,9.9,,FALSE,,,,,
279
+ product,ND6. Stir Fry Glass Noodle Seafood,,9.9,,FALSE,,,,,
280
+ product,ND7. Stir Fry Tom Yum Glass Noodle Seafood,,9.9,,FALSE,,,,,
281
+ product,ND8. Pork Leg Noodle,,8.9,,FALSE,,,,,
282
+ product,ND9. Thai Noodles Pork Dry,,8.9,,FALSE,,,,,
283
+ product,ND10. Thai Noodles Beef Dry,,9.9,,FALSE,,,,,
284
+ product,Takeaway,,0.3,,TRUE,,,,,
285
+ category,Noodles - Soup,,,,,,,,,
286
+ product,NS1. Thai Noodles Pork,,8.9,,FALSE,,,,,
287
+ product,NS2. Thai Noodles Beef,,9.9,,FALSE,,,,,
288
+ product,NS3. Green Curry Chicken with Laksa Noodle,,9.9,,FALSE,,,,,
289
+ product,NS4. Tom Yum Seafood Mama Noodles,,9.9,,FALSE,,,,,
290
+ product,NS5. Tom Yum Seafood Mama Noodles Hotpot,,18.9,,FALSE,,,,,
291
+ product,Takeaway,,0.3,,TRUE,,,,,
292
+ category,Extras,,,,,,,,,
293
+ product,E1. Fried Egg,,1.5,,FALSE,,,,,
294
+ product,E2. White Rice,,1.5,,FALSE,,,,,
295
+ product,E3. Sticky Rice,,2,,FALSE,,,,,
296
+ category,Dessert,,,,,,,,,
297
+ product,DE1. Red Ruby,,5.9,,FALSE,,,,,
298
+ modifier_category,Now or Later,,,,,1,1,,,
299
+ modifier,Serve Now,,,,,,,,,
300
+ modifier,Serve Later,,,,,,,,,
301
+ product,DE2. Thai Tapioca with Coconut Milk,,5.9,,FALSE,,,,,
302
+ modifier_category,Now or Later,,,,,1,1,,,
303
+ modifier,Serve Now,,,,,,,,,
304
+ modifier,Serve Later,,,,,,,,,
305
+ product,DE3. Mango Sticky Rice,,8.9,,FALSE,,,,,
306
+ modifier_category,Now or Later,,,,,1,1,,,
307
+ modifier,Serve Now,,,,,,,,,
308
+ modifier,Serve Later,,,,,,,,,
309
+ product,Takeaway,,0.3,,TRUE,,,,,
310
+ category,Drinks,,,,,,,,,
311
+ product,DR1. Bottled Water,,1.9,,FALSE,,,,,
312
+ product,DR2. Coke,,2.9,,FALSE,,,,,
313
+ product,DR3. Green Tea,,2.9,,FALSE,,,,,
314
+ product,DR4. Ice Lemon Tea,,2.9,,FALSE,,,,,
315
+ product,DR5. Vitamilk,,2.9,,FALSE,,,,,
316
+ product,DR6. Fresh Coconut,,4.9,,FALSE,,,,,
317
+ product,DR7. Lemongrass Drink,,3.9,,FALSE,,,,,
318
+ modifier_category,Hot or Cold,,,,,1,1,,,
319
+ modifier,Hot,,,,,,,,,
320
+ modifier,Cold,,,,,,,,,
321
+ product,DR8. Pink Milk (Nom Yen),,3.9,,FALSE,,,,,
322
+ product,DR9. Homemade Ice Lemon Tea,,4.5,,FALSE,,,,,
323
+ product,DR10. Thai Green Milk Tea,,4.5,,FALSE,,,,,
324
+ product,DR11. Thai Milk Tea,,4.5,,FALSE,,,,,
325
+ product,DR12. Longan Drink,,4.5,,FALSE,,,,,
326
+ category,Beer,,,,,,,,,
327
+ product,B1. Singha 320 ml,,6,,FALSE,,,,,
328
+ product,B2. Singha 320 ml Bucket (6 Bottles),,28,,FALSE,,,,,
329
+ product,B3. Singha 620 ml,,11,,FALSE,,,,,
330
+ product,B4. Singha 620 ml (2 Bottles),,18,,FALSE,,,,,
331
+ product,B5. Heineken 325 ml,,7,,FALSE,,,,,
332
+ product,B6. Heineken 325 ml Bucket (6 Bottles),,35,,FALSE,,,,,
333
+ product,B7. Jinro Souju (Original),,16,,FALSE,,,,,
334
+ product,B8. Jinro Souju (Flavoured),,13,,FALSE,,,,,
335
+ product,B9. Housepour (Red Wine),,10,,FALSE,,,,,
336
+ product,B10. Housepour Bottle (Red Wine),,48,,FALSE,,,,,
@@ -0,0 +1,34 @@
1
+ # How to Create a New Model
2
+
3
+ ## Steps
4
+
5
+ 1. **Create type file** `src/types/{model}.type.ts`
6
+ - Interface extending `IAppCoreModel`
7
+ - Class extending `AppCoreModel`
8
+ - Enums if needed
9
+
10
+ 2. **Add ModelPrefix** in `src/types/misc.type.ts`
11
+ ```typescript
12
+ ModelPrefix.{Model} = 'xxx_'
13
+ ```
14
+
15
+ 3. **Create service** in `src/services/app.service.ts`
16
+ - Import the type
17
+ - Add service class:
18
+ ```typescript
19
+ export type I{Model}Service = IAppRemoteService<I{Model}>;
20
+ export class {Model}Service extends AppRemoteService<I{Model}> implements I{Model}Service {
21
+ constructor(readonly http: AxiosInstance, readonly db: Dexie, readonly options: IServiceOptions,
22
+ readonly moduleName = '{models}', readonly methodName = '{model}') {
23
+ super();
24
+ }
25
+ }
26
+ ```
27
+
28
+ 4. **Register in factory** `src/service.factory.ts`
29
+ - Import service
30
+ - Add to `serviceProvider` map
31
+ - Add schema to `dbSchemas`
32
+ - Bump database version number
33
+
34
+ 5. **Export** in `src/index.ts`