@social-mail/social-mail-client 1.2.641 → 1.2.642

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 (90) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +481 -78
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +6 -6
  4. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  5. package/dist/common/commands/CommonCommands.d.ts +3 -0
  6. package/dist/common/commands/CommonCommands.d.ts.map +1 -1
  7. package/dist/common/commands/CommonCommands.js +4 -0
  8. package/dist/common/commands/CommonCommands.js.map +1 -1
  9. package/dist/common/controls/phone-editor/PhoneEditor.d.ts +3 -0
  10. package/dist/common/controls/phone-editor/PhoneEditor.d.ts.map +1 -1
  11. package/dist/common/controls/phone-editor/PhoneEditor.js +25 -4
  12. package/dist/common/controls/phone-editor/PhoneEditor.js.map +1 -1
  13. package/dist/common/pages/stores/StoreDetailPage.js +1 -1
  14. package/dist/common/pages/stores/StoreDetailPage.js.map +1 -1
  15. package/dist/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.d.ts +10 -0
  16. package/dist/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.d.ts.map +1 -0
  17. package/dist/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.js +87 -0
  18. package/dist/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.js.map +1 -0
  19. package/dist/common/pages/stores/payment-gateway/PaymentGatewayListPage.d.ts +23 -0
  20. package/dist/common/pages/stores/payment-gateway/PaymentGatewayListPage.d.ts.map +1 -0
  21. package/dist/common/pages/stores/payment-gateway/PaymentGatewayListPage.js +129 -0
  22. package/dist/common/pages/stores/payment-gateway/PaymentGatewayListPage.js.map +1 -0
  23. package/dist/model/model.d.ts +36 -7
  24. package/dist/model/model.d.ts.map +1 -1
  25. package/dist/model/model.js +145 -20
  26. package/dist/model/model.js.map +1 -1
  27. package/dist/public/channel/ChannelView.pack.js +253 -76
  28. package/dist/public/channel/ChannelView.pack.js.map +1 -1
  29. package/dist/public/channel/ChannelView.pack.min.js +2 -2
  30. package/dist/public/channel/ChannelView.pack.min.js.map +1 -1
  31. package/dist/public/preview/zip/DownloadZip.pack.js +253 -76
  32. package/dist/public/preview/zip/DownloadZip.pack.js.map +1 -1
  33. package/dist/public/preview/zip/DownloadZip.pack.min.js +1 -1
  34. package/dist/public/preview/zip/DownloadZip.pack.min.js.map +1 -1
  35. package/dist/public/store/Store.d.ts +2 -2
  36. package/dist/public/store/Store.d.ts.map +1 -1
  37. package/dist/public/store/Store.js +29 -7
  38. package/dist/public/store/Store.js.map +1 -1
  39. package/dist/public/store/Store.pack.js +19797 -18064
  40. package/dist/public/store/Store.pack.js.map +1 -1
  41. package/dist/public/store/Store.pack.min.js +370 -161
  42. package/dist/public/store/Store.pack.min.js.map +1 -1
  43. package/dist/public/store/StoreItemDetailView.d.ts +1 -0
  44. package/dist/public/store/StoreItemDetailView.d.ts.map +1 -1
  45. package/dist/public/store/StoreItemDetailView.js +24 -8
  46. package/dist/public/store/StoreItemDetailView.js.map +1 -1
  47. package/dist/public/store/StoreItemListView.d.ts.map +1 -1
  48. package/dist/public/store/StoreItemListView.js +7 -4
  49. package/dist/public/store/StoreItemListView.js.map +1 -1
  50. package/dist/public/store/StoreUrlService.d.ts +22 -15
  51. package/dist/public/store/StoreUrlService.d.ts.map +1 -1
  52. package/dist/public/store/StoreUrlService.js +39 -12
  53. package/dist/public/store/StoreUrlService.js.map +1 -1
  54. package/dist/public/store/cart/ShoppingCart.pack.js +253 -76
  55. package/dist/public/store/cart/ShoppingCart.pack.js.map +1 -1
  56. package/dist/public/store/cart/ShoppingCart.pack.min.js +2 -2
  57. package/dist/public/store/cart/ShoppingCart.pack.min.js.map +1 -1
  58. package/dist/public/user/SiteLogin.d.ts +28 -0
  59. package/dist/public/user/SiteLogin.d.ts.map +1 -0
  60. package/dist/public/user/SiteLogin.js +231 -0
  61. package/dist/public/user/SiteLogin.js.map +1 -0
  62. package/dist/public/user/WebSiteUserService.d.ts +10 -0
  63. package/dist/public/user/WebSiteUserService.d.ts.map +1 -0
  64. package/dist/public/user/WebSiteUserService.js +52 -0
  65. package/dist/public/user/WebSiteUserService.js.map +1 -0
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/dist/web/AppIndex.pack.js +481 -78
  68. package/dist/web/AppIndex.pack.js.map +1 -1
  69. package/dist/web/AppIndex.pack.min.js +6 -6
  70. package/dist/web/AppIndex.pack.min.js.map +1 -1
  71. package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts +1 -1
  72. package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts.map +1 -1
  73. package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js +108 -56
  74. package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js.map +1 -1
  75. package/node_modules/@web-atoms/entity/dist/tsconfig.tsbuildinfo +1 -1
  76. package/node_modules/@web-atoms/entity/package.json +1 -1
  77. package/node_modules/@web-atoms/entity/src/services/BaseEntityService.ts +109 -54
  78. package/package.json +2 -2
  79. package/src/common/commands/CommonCommands.ts +5 -0
  80. package/src/common/controls/phone-editor/PhoneEditor.tsx +24 -1
  81. package/src/common/pages/stores/StoreDetailPage.tsx +1 -1
  82. package/src/common/pages/stores/payment-gateway/PaymentGatewayEditorPage.tsx +62 -0
  83. package/src/common/pages/stores/payment-gateway/PaymentGatewayListPage.tsx +94 -0
  84. package/src/model/model.ts +49 -14
  85. package/src/public/store/Store.tsx +18 -4
  86. package/src/public/store/StoreItemDetailView.tsx +17 -4
  87. package/src/public/store/StoreItemListView.tsx +4 -2
  88. package/src/public/store/StoreUrlService.ts +62 -27
  89. package/src/public/user/SiteLogin.tsx +251 -0
  90. package/src/public/user/WebSiteUserService.ts +39 -0
@@ -1,12 +1,35 @@
1
1
  import XNode from "@web-atoms/core/dist/core/XNode";
2
2
  import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
3
- import { CountrySelect } from "../countries/CountrySelect";
3
+ import { CountrySelect, formatForCountry, isdForCountry } from "../countries/CountrySelect";
4
+ import Bind from "@web-atoms/core/dist/core/Bind";
5
+ import MaskedInput from "@web-atoms/web-controls/dist/basic/MaskedInput";
4
6
 
5
7
  export default class PhoneEditor extends AtomControl {
8
+
9
+ country: any;
10
+
11
+ phoneNumberText: any;
12
+
13
+ value: any;
14
+
6
15
  protected preCreate(): void {
16
+ this.country = "IN";
17
+ this.phoneNumberText = "";
18
+ this.value = null;
7
19
  this.render(<div data-layout="row">
8
20
  <CountrySelect
21
+ value={Bind.twoWaysImmediate(() => this.country)}
22
+ />
23
+ <MaskedInput
24
+ data-mask={Bind.oneWayAsync(() => formatForCountry(this.country))}
25
+ value={Bind.twoWaysImmediate(() => this.phoneNumberText)}
9
26
  />
10
27
  </div>);
28
+
29
+ this.bindEvent(this.element, "input", async () => {
30
+ const isdCode = await isdForCountry(this.country);
31
+ const phoneNumber = this.phoneNumberText.replace(/[^0-9]/g,"");
32
+ this.value = isdCode.startsWith("+") ? isdCode + phoneNumber: `+${isdCode}${phoneNumber}`;
33
+ });
11
34
  }
12
35
  }
@@ -44,7 +44,7 @@ export default class StoreDetailPage extends ContentPage<{ id: any }> {
44
44
  text="Products"
45
45
  />
46
46
  <a data-click-event="route"
47
- href={CommonCommands.editConfig.displayRoute({ storeID: this.parameters.id})}
47
+ href={CommonCommands.paymentConfig.displayRoute({ storeID: this.parameters.id})}
48
48
  text="Settings"
49
49
  ></a>
50
50
  <a data-click-event="route"
@@ -0,0 +1,62 @@
1
+ import { ContentPage } from "@web-atoms/web-controls/dist/mobile-app/MobileApp";
2
+ import { IStoreLedger, StoreLedgerPaymentGatewayArray } from "../../../../model/model";
3
+ import XNode from "@web-atoms/core/dist/core/XNode";
4
+ import Form from "@web-atoms/web-controls/dist/basic/Form";
5
+ import FormField from "@web-atoms/web-controls/dist/basic/FormField";
6
+ import Bind from "@web-atoms/core/dist/core/Bind";
7
+ import Select from "@web-atoms/web-controls/dist/basic/Select";
8
+ import { SaveIconTextButton } from "../../../controls/buttons/IconButton";
9
+ import Action from "@web-atoms/core/dist/view-model/Action";
10
+ import InjectProperty from "@web-atoms/core/dist/core/InjectProperty";
11
+ import EntityService from "../../../../services/EntityService";
12
+
13
+ export default class PaymentGatewayEditorPage extends ContentPage<IStoreLedger> {
14
+
15
+ model: IStoreLedger;
16
+
17
+ @InjectProperty
18
+ entityService: EntityService;
19
+
20
+ async init() {
21
+
22
+ this.title = "Payment Gateway";
23
+
24
+ this.model = this.parameters;
25
+
26
+ this.renderer = <div>
27
+ <Form>
28
+ <FormField label="Type">
29
+ <Select
30
+ items={StoreLedgerPaymentGatewayArray}
31
+ value={Bind.twoWaysImmediate(() => this.model.paymentGateway)}
32
+ />
33
+ </FormField>
34
+ <FormField label="Name">
35
+ <input value={Bind.twoWaysImmediate(() => this.model.name)}/>
36
+ </FormField>
37
+ <FormField label="Description">
38
+ <input value={Bind.twoWaysImmediate(() => this.model.description)}/>
39
+ </FormField>
40
+ <FormField label="MerchantID">
41
+ <input value={Bind.twoWaysImmediate(() => this.model.merchantID)}/>
42
+ </FormField>
43
+ <FormField label="Username/Access ID/Key Index">
44
+ <input value={Bind.twoWaysImmediate(() => this.model.username)}/>
45
+ </FormField>
46
+ <FormField label="Password/Secret/Key">
47
+ <input value={Bind.twoWaysImmediate(() => this.model.password)}/>
48
+ </FormField>
49
+ <div data-layout="sticky-command-row">
50
+ <SaveIconTextButton data-submit-event="submitForm" />
51
+ </div>
52
+ </Form>
53
+ </div>;
54
+ }
55
+
56
+ @Action({ onEvent: "submitForm", close: true })
57
+ async submitForm() {
58
+ await this.entityService.save(this.model, (c) => c);
59
+ return this.model;
60
+ }
61
+
62
+ }
@@ -0,0 +1,94 @@
1
+ import InjectProperty from "@web-atoms/core/dist/core/InjectProperty";
2
+ import XNode from "@web-atoms/core/dist/core/XNode";
3
+ import { Inject } from "@web-atoms/core/dist/di/Inject";
4
+ import AtomRepeater from "@web-atoms/web-controls/dist/basic/AtomRepeater";
5
+ import MasterDetailPage from "@web-atoms/web-controls/dist/mobile-app/MasterDetailPage";
6
+ import EntityService from "../../../../services/EntityService";
7
+ import InfiniteRepeater from "../../../controls/repeater/InfiniteRepeater";
8
+ import { IStoreLedger, StoreLedger } from "../../../../model/model";
9
+ import Bind from "@web-atoms/core/dist/core/Bind";
10
+ import { Sql } from "../../../Sql";
11
+ import Action from "@web-atoms/core/dist/view-model/Action";
12
+ import PageNavigator from "@web-atoms/web-controls/dist/PageNavigator";
13
+ import PaymentGatewayEditorPage from "./PaymentGatewayEditorPage";
14
+ import { AddIconButton, AddIconTextButton } from "../../../controls/buttons/IconButton";
15
+
16
+ export default class PaymentGatewayListPage extends MasterDetailPage {
17
+
18
+ parameters: { storeID };
19
+
20
+ @InjectProperty
21
+ entityService: EntityService;
22
+
23
+ search: string = "";
24
+
25
+ items: IStoreLedger[] = [];
26
+
27
+ repeater: AtomRepeater;
28
+
29
+ async init() {
30
+
31
+ this.headerRenderer = () => <div>
32
+ <input type="search" value={Bind.twoWaysImmediate(() => this.search)}/>
33
+ </div>;
34
+
35
+ this.renderer = <div>
36
+ <AtomRepeater
37
+ data-layout="data-grid"
38
+ data-selection-updated-event="itemSelected"
39
+ data-items-updated-event="itemsLoaded"
40
+ presenter={Bind.presenter((c) => this.repeater = c)}
41
+ items={this.items}
42
+ { ... InfiniteRepeater.pagedItems((start) => (c, e, cancelToken) => this.load({ start, search: this.search, cancelToken }))}
43
+ itemRenderer={(x: IStoreLedger) => <div>
44
+ <label text={x.ledgerID}/>
45
+ <label text={x.paymentGateway}/>
46
+ <label text={x.name}/>
47
+ </div>}
48
+ />
49
+ </div>;
50
+
51
+ this.footerRenderer = () => <div>
52
+ <AddIconTextButton data-click-event="addItem" />
53
+ </div>;
54
+ }
55
+
56
+ load( { start, cancelToken, search } ) {
57
+ const { storeID } = this.parameters;
58
+ let q = this.entityService.query(StoreLedger)
59
+ .where({ storeID }, (p) => (x) => x.storeID === p.storeID && x.paymentGateway !== null);
60
+ if (search) {
61
+ q = q.where({ search }, (p) => (x) => Sql.text.iLike(x.description, p.search));
62
+ }
63
+ return q.toPagedList({
64
+ start,
65
+ cancelToken
66
+ });
67
+ }
68
+
69
+ @Action({ onEvent: "itemSelected"})
70
+ itemSelected() {
71
+ const data = this.repeater.selectedItem;
72
+ if (!data) {
73
+ return;
74
+ }
75
+ this.openDetail(PaymentGatewayEditorPage, data);
76
+ }
77
+
78
+ @Action({ onEvent: "itemsLoaded"})
79
+ itemsLoaded() {
80
+ this.repeater.selectedItem = this.items[0];
81
+ }
82
+
83
+ @Action({ onEvent: "addItem"})
84
+ addItem() {
85
+ const { storeID } = this.parameters;
86
+ const item = StoreLedger.create({
87
+ storeID,
88
+ head: "Income"
89
+ });
90
+ this.items.add(item);
91
+ this.repeater.selectedItem = item;
92
+ }
93
+
94
+ }
@@ -57,8 +57,8 @@ export interface IAppFile extends IClrEntity {
57
57
  currentVersionWebSites?: ICollection<IWebSiteFolder>;
58
58
  stores?: ICollection<IStore>;
59
59
  storeItems?: ICollection<IStoreItem>;
60
- storeMediaFiles?: ICollection<IStoreMediaFile>;
61
60
  storeJournals?: ICollection<IStoreJournal>;
61
+ storeMediaFiles?: ICollection<IStoreMediaFile>;
62
62
  userPins?: ICollection<IUserPin>;
63
63
  websiteVersions?: ICollection<IWebSiteFolderVersion>;
64
64
  }
@@ -69,7 +69,7 @@ export const AppFile: IModel<IAppFile,{"storeItemFiles":"external","channelEmail
69
69
  "AppFile",
70
70
  ["appFileID"],
71
71
  { isFolder: false,name: "",fileSize: 0,contentType: "",isDeleted: false,isShared: false,dateCreated: new DefaultFactory(() => new DateTime()) },
72
- {"name":"app_files","keys":[{"name":"appFileID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"path","type":"string","dataType":"AsciiChar","length":400,"default":["path","\"\""]},{"name":"isFolder","type":"boolean","dataType":"Boolean","default":["isFolder","false"]},{"name":"name","type":"string","dataType":"Char","length":400,"default":["name","\"\""]},{"name":"fileSize","type":"number","dataType":"BigInt","default":["fileSize","0"]},{"name":"contentType","type":"string","dataType":"Char","length":200,"default":["contentType","\"\""]},{"name":"contentDisposition","type":"string","dataType":"AsciiChar","length":10,"default":["contentDisposition","\"attachment\""]},{"name":"contentID","type":"string","dataType":"Char","default":["contentID","\"\""]},{"name":"fileContentID","type":"number","dataType":"BigInt"},{"name":"creatorID","type":"number","dataType":"BigInt"},{"name":"parentID","type":"number","dataType":"BigInt"},{"name":"emailID","type":"number","dataType":"BigInt"},{"name":"isDeleted","type":"boolean","dataType":"Boolean","default":["isDeleted","false"]},{"name":"isShared","type":"boolean","dataType":"Boolean","default":["isShared","false"]},{"name":"dateCreated","type":"DateTime","dataType":"DateTimeOffset","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTimeOffset","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"versions","type":"number","dataType":"Int","default":["versions","0"]}],"relations":[{"name":"fileContent","fkMap":[{"fk":"fileContentID","relatedKey":"fileContentID"}],"relatedName":"FileContent"},{"name":"creator","fkMap":[{"fk":"creatorID","relatedKey":"userID"}],"relatedName":"User"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"AppFile"},{"name":"email","fkMap":[{"fk":"emailID","relatedKey":"emailID"}],"relatedName":"Email"},{"name":"fileVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"folderVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"accessList","isCollection":true,"isInverse":true,"relatedName":"AppFileAccess"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"AppFileTag"},{"name":"mailboxLogos","isCollection":true,"isInverse":true,"relatedName":"Mailbox"},{"name":"previewContacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"websiteFolder","isCollection":false,"isInverse":true,"relatedName":"WebSiteFolder"},{"name":"currentVersionWebSites","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolder"},{"name":"stores","isCollection":true,"isInverse":true,"relatedName":"Store"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"storeMediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"storeJournals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"websiteVersions","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderVersion"}],"queries":{"storeItemFiles":"external","channelEmailFiles":"external","children":"external","templateSnapshot":"external"}}
72
+ {"name":"app_files","keys":[{"name":"appFileID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"path","type":"string","dataType":"AsciiChar","length":400,"default":["path","\"\""]},{"name":"isFolder","type":"boolean","dataType":"Boolean","default":["isFolder","false"]},{"name":"name","type":"string","dataType":"Char","length":400,"default":["name","\"\""]},{"name":"fileSize","type":"number","dataType":"BigInt","default":["fileSize","0"]},{"name":"contentType","type":"string","dataType":"Char","length":200,"default":["contentType","\"\""]},{"name":"contentDisposition","type":"string","dataType":"AsciiChar","length":10,"default":["contentDisposition","\"attachment\""]},{"name":"contentID","type":"string","dataType":"Char","default":["contentID","\"\""]},{"name":"fileContentID","type":"number","dataType":"BigInt"},{"name":"creatorID","type":"number","dataType":"BigInt"},{"name":"parentID","type":"number","dataType":"BigInt"},{"name":"emailID","type":"number","dataType":"BigInt"},{"name":"isDeleted","type":"boolean","dataType":"Boolean","default":["isDeleted","false"]},{"name":"isShared","type":"boolean","dataType":"Boolean","default":["isShared","false"]},{"name":"dateCreated","type":"DateTime","dataType":"DateTimeOffset","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTimeOffset","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"versions","type":"number","dataType":"Int","default":["versions","0"]}],"relations":[{"name":"fileContent","fkMap":[{"fk":"fileContentID","relatedKey":"fileContentID"}],"relatedName":"FileContent"},{"name":"creator","fkMap":[{"fk":"creatorID","relatedKey":"userID"}],"relatedName":"User"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"AppFile"},{"name":"email","fkMap":[{"fk":"emailID","relatedKey":"emailID"}],"relatedName":"Email"},{"name":"fileVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"folderVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"accessList","isCollection":true,"isInverse":true,"relatedName":"AppFileAccess"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"AppFileTag"},{"name":"mailboxLogos","isCollection":true,"isInverse":true,"relatedName":"Mailbox"},{"name":"previewContacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"websiteFolder","isCollection":false,"isInverse":true,"relatedName":"WebSiteFolder"},{"name":"currentVersionWebSites","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolder"},{"name":"stores","isCollection":true,"isInverse":true,"relatedName":"Store"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"storeJournals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"storeMediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"websiteVersions","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderVersion"}],"queries":{"storeItemFiles":"external","channelEmailFiles":"external","children":"external","templateSnapshot":"external"}}
73
73
  );
74
74
  modelEntitySchemas["AppFile"] = AppFile;
75
75
 
@@ -223,9 +223,9 @@ export interface IContact extends IClrEntity {
223
223
  domains?: ICollection<IContactDomain>;
224
224
  sellerStores?: ICollection<IStore>;
225
225
  vendorItems?: ICollection<IStoreItem>;
226
- ledgers?: ICollection<IStoreLedger>;
227
226
  soldInvoices?: ICollection<IStoreJournal>;
228
227
  boughtInvoices?: ICollection<IStoreJournal>;
228
+ ledgers?: ICollection<IStoreLedger>;
229
229
  soldItems?: ICollection<IStoreJournalLineItem>;
230
230
  }
231
231
 
@@ -233,7 +233,7 @@ export const Contact: IModel<IContact,any,any> = new Model<IContact>(
233
233
  "Contact",
234
234
  ["contactID"],
235
235
  { name: "",type: "",dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()) },
236
- {"name":"contacts","keys":[{"name":"contactID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"externalID","type":"string","dataType":"Char","length":400,"default":["externalID","\"\""]},{"name":"userID","type":"number","dataType":"BigInt"},{"name":"mailboxID","type":"number","dataType":"BigInt"},{"name":"domainID","type":"number","dataType":"BigInt"},{"name":"name","type":"string","dataType":"Char","length":200,"default":["name","\"\""]},{"name":"description","type":"string","dataType":"Char","length":200,"default":["description","\"\""]},{"name":"companyID","type":"string","dataType":"Char","length":200,"default":["companyID","\"\""]},{"name":"salesTaxID","type":"string","dataType":"Char","length":200,"default":["salesTaxID","\"\""]},{"name":"gstTaxID","type":"string","dataType":"Char","length":200,"default":["gstTaxID","\"\""]},{"name":"vatTaxID","type":"string","dataType":"Char","length":200,"default":["vatTaxID","\"\""]},{"name":"incomeTaxID","type":"string","dataType":"Char","length":200,"default":["incomeTaxID","\"\""]},{"name":"type","type":"string","dataType":"Char","length":50,"default":["type","\"\""]},{"name":"synchronization","type":"string","dataType":"Char","default":["synchronization","\"\""]},{"name":"dateCreated","type":"DateTime","dataType":"DateTimeOffset","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTimeOffset","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"previewID","type":"number","dataType":"BigInt"},{"name":"billingAddressID","type":"number","dataType":"BigInt"},{"name":"shippingAddressID","type":"number","dataType":"BigInt"}],"relations":[{"name":"user","fkMap":[{"fk":"userID","relatedKey":"userID"}],"relatedName":"User"},{"name":"mailbox","fkMap":[{"fk":"mailboxID","relatedKey":"mailboxID"}],"relatedName":"Mailbox"},{"name":"hostedDomain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"preview","fkMap":[{"fk":"previewID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"billingAddress","fkMap":[{"fk":"billingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"addresses","isCollection":true,"isInverse":true,"relatedName":"ContactAddress"},{"name":"shippingAddress","fkMap":[{"fk":"shippingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"emails","isCollection":true,"isInverse":true,"relatedName":"ContactEmail"},{"name":"phones","isCollection":true,"isInverse":true,"relatedName":"ContactPhone"},{"name":"items","isCollection":true,"isInverse":true,"relatedName":"ContactItem"},{"name":"domains","isCollection":true,"isInverse":true,"relatedName":"ContactDomain"},{"name":"sellerStores","isCollection":true,"isInverse":true,"relatedName":"Store"},{"name":"vendorItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"soldInvoices","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"boughtInvoices","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"soldItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"}]}
236
+ {"name":"contacts","keys":[{"name":"contactID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"externalID","type":"string","dataType":"Char","length":400,"default":["externalID","\"\""]},{"name":"userID","type":"number","dataType":"BigInt"},{"name":"mailboxID","type":"number","dataType":"BigInt"},{"name":"domainID","type":"number","dataType":"BigInt"},{"name":"name","type":"string","dataType":"Char","length":200,"default":["name","\"\""]},{"name":"description","type":"string","dataType":"Char","length":200,"default":["description","\"\""]},{"name":"companyID","type":"string","dataType":"Char","length":200,"default":["companyID","\"\""]},{"name":"salesTaxID","type":"string","dataType":"Char","length":200,"default":["salesTaxID","\"\""]},{"name":"gstTaxID","type":"string","dataType":"Char","length":200,"default":["gstTaxID","\"\""]},{"name":"vatTaxID","type":"string","dataType":"Char","length":200,"default":["vatTaxID","\"\""]},{"name":"incomeTaxID","type":"string","dataType":"Char","length":200,"default":["incomeTaxID","\"\""]},{"name":"type","type":"string","dataType":"Char","length":50,"default":["type","\"\""]},{"name":"synchronization","type":"string","dataType":"Char","default":["synchronization","\"\""]},{"name":"dateCreated","type":"DateTime","dataType":"DateTimeOffset","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTimeOffset","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"previewID","type":"number","dataType":"BigInt"},{"name":"billingAddressID","type":"number","dataType":"BigInt"},{"name":"shippingAddressID","type":"number","dataType":"BigInt"}],"relations":[{"name":"user","fkMap":[{"fk":"userID","relatedKey":"userID"}],"relatedName":"User"},{"name":"mailbox","fkMap":[{"fk":"mailboxID","relatedKey":"mailboxID"}],"relatedName":"Mailbox"},{"name":"hostedDomain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"preview","fkMap":[{"fk":"previewID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"billingAddress","fkMap":[{"fk":"billingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"addresses","isCollection":true,"isInverse":true,"relatedName":"ContactAddress"},{"name":"shippingAddress","fkMap":[{"fk":"shippingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"emails","isCollection":true,"isInverse":true,"relatedName":"ContactEmail"},{"name":"phones","isCollection":true,"isInverse":true,"relatedName":"ContactPhone"},{"name":"items","isCollection":true,"isInverse":true,"relatedName":"ContactItem"},{"name":"domains","isCollection":true,"isInverse":true,"relatedName":"ContactDomain"},{"name":"sellerStores","isCollection":true,"isInverse":true,"relatedName":"Store"},{"name":"vendorItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"soldInvoices","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"boughtInvoices","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"soldItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"}]}
237
237
  );
238
238
  modelEntitySchemas["Contact"] = Contact;
239
239
 
@@ -554,7 +554,7 @@ export interface IEmail extends IClrEntity {
554
554
  lastReplyID?: number | null;
555
555
  engagement?: string | null;
556
556
  tags?: string | null;
557
- postID?: string | null;
557
+ postID?: string;
558
558
  senderEmail?: IEmailAddress;
559
559
  senderUser?: IUser;
560
560
  mimeFile?: IEmailLog;
@@ -770,8 +770,8 @@ export interface IMailboxEmail extends IClrEntity {
770
770
  engagementCount?: number;
771
771
  dateUpdated?: DateTime | null;
772
772
  datePublished?: DateTime | null;
773
- postID?: string | null;
774
773
  isThread?: boolean;
774
+ postID?: string;
775
775
  mailbox?: IMailbox;
776
776
  email?: IEmail;
777
777
  }
@@ -1089,9 +1089,9 @@ export interface IStore extends IClrEntity {
1089
1089
  configs?: ICollection<IStoreConfig>;
1090
1090
  storeItems?: ICollection<IStoreItem>;
1091
1091
  itemFolders?: ICollection<IStoreItemFolder>;
1092
- insights?: ICollection<IStoreInsight>;
1093
- ledgers?: ICollection<IStoreLedger>;
1094
1092
  journals?: ICollection<IStoreJournal>;
1093
+ ledgers?: ICollection<IStoreLedger>;
1094
+ insights?: ICollection<IStoreInsight>;
1095
1095
  tags?: ICollection<IStoreTag>;
1096
1096
  storeWebsites?: ICollection<IWebSiteStore>;
1097
1097
  }
@@ -1100,7 +1100,7 @@ export const Store: IModel<IStore,{"storeQuery":"external"},any> = new Model<ISt
1100
1100
  "Store",
1101
1101
  ["storeID"],
1102
1102
  { name: "",currency: "" },
1103
- {"name":"stores","keys":[{"name":"storeID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"name","type":"string","dataType":"Char","length":200,"default":["name","\"\""]},{"name":"currency","type":"string","dataType":"Char","length":5,"default":["currency","\"\""]},{"name":"sellerID","type":"number","dataType":"BigInt"},{"name":"folderID","type":"number","dataType":"BigInt"}],"relations":[{"name":"seller","fkMap":[{"fk":"sellerID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"storeUsers","isCollection":true,"isInverse":true,"relatedName":"StoreUser"},{"name":"configs","isCollection":true,"isInverse":true,"relatedName":"StoreConfig"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"itemFolders","isCollection":true,"isInverse":true,"relatedName":"StoreItemFolder"},{"name":"insights","isCollection":true,"isInverse":true,"relatedName":"StoreInsight"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"journals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"StoreTag"},{"name":"storeWebsites","isCollection":true,"isInverse":true,"relatedName":"WebSiteStore"}],"queries":{"storeQuery":"external"}}
1103
+ {"name":"stores","keys":[{"name":"storeID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"name","type":"string","dataType":"Char","length":200,"default":["name","\"\""]},{"name":"currency","type":"string","dataType":"Char","length":5,"default":["currency","\"\""]},{"name":"sellerID","type":"number","dataType":"BigInt"},{"name":"folderID","type":"number","dataType":"BigInt"}],"relations":[{"name":"seller","fkMap":[{"fk":"sellerID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"storeUsers","isCollection":true,"isInverse":true,"relatedName":"StoreUser"},{"name":"configs","isCollection":true,"isInverse":true,"relatedName":"StoreConfig"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"itemFolders","isCollection":true,"isInverse":true,"relatedName":"StoreItemFolder"},{"name":"journals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"insights","isCollection":true,"isInverse":true,"relatedName":"StoreInsight"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"StoreTag"},{"name":"storeWebsites","isCollection":true,"isInverse":true,"relatedName":"WebSiteStore"}],"queries":{"storeQuery":"external"}}
1104
1104
  );
1105
1105
  modelEntitySchemas["Store"] = Store;
1106
1106
 
@@ -1163,9 +1163,9 @@ export interface IStoreItem extends IClrEntity {
1163
1163
  variants?: ICollection<IStoreItem>;
1164
1164
  vendor?: IContact;
1165
1165
  storeItemPrices?: ICollection<IStoreItemPrice>;
1166
+ ledgers?: ICollection<IStoreLedger>;
1166
1167
  mediaFiles?: ICollection<IStoreMediaFile>;
1167
1168
  insights?: ICollection<IStoreInsight>;
1168
- ledgers?: ICollection<IStoreLedger>;
1169
1169
  lineItems?: ICollection<IStoreJournalLineItem>;
1170
1170
  taxes?: ICollection<IStoreItemTax>;
1171
1171
  taxItems?: ICollection<IStoreItemTax>;
@@ -1178,7 +1178,7 @@ export const StoreItem: IModel<IStoreItem,{"storeQuery":"external"},any> = new M
1178
1178
  "StoreItem",
1179
1179
  ["storeItemID"],
1180
1180
  { name: "",active: false,itemType: "product",dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),price: 0,maxPrice: 0 },
1181
- {"name":"store_items","keys":[{"name":"storeItemID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"storeID","type":"number","dataType":"BigInt"},{"name":"itemFolderID","type":"number","dataType":"BigInt"},{"name":"name","type":"string","dataType":"Char","length":200,"default":["name","\"\""]},{"name":"active","type":"boolean","dataType":"Boolean","default":["active","false"]},{"name":"internalNotes","type":"string","dataType":"Char","default":["internalNotes","\"\""]},{"name":"description","type":"string","dataType":"Char","default":["description","\"\""]},{"name":"itemType","type":"string","dataType":"Char","length":20,"default":["itemType","\"product\""]},{"name":"folderID","type":"number","dataType":"BigInt"},{"name":"sizeForID","type":"number","dataType":"BigInt"},{"name":"variantForID","type":"number","dataType":"BigInt"},{"name":"dateCreated","type":"DateTime","dataType":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"vendorID","type":"number","dataType":"BigInt"},{"name":"price","type":"number","dataType":"Decimal","default":["price","0"]},{"name":"maxPrice","type":"number","dataType":"Decimal","default":["maxPrice","0"]}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"itemFolder","fkMap":[{"fk":"itemFolderID","relatedKey":"itemFolderID"}],"relatedName":"StoreItemFolder"},{"name":"fileFolder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"sizeFor","fkMap":[{"fk":"sizeForID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"sizes","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"variantFor","fkMap":[{"fk":"variantForID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"variants","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"vendor","fkMap":[{"fk":"vendorID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"storeItemPrices","isCollection":true,"isInverse":true,"relatedName":"StoreItemPrice"},{"name":"mediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"insights","isCollection":true,"isInverse":true,"relatedName":"StoreInsight"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"lineItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"},{"name":"taxes","isCollection":true,"isInverse":true,"relatedName":"StoreItemTax"},{"name":"taxItems","isCollection":true,"isInverse":true,"relatedName":"StoreItemTax"},{"name":"storeItemTags","isCollection":true,"isInverse":true,"relatedName":"StoreItemTag"}],"queries":{"storeQuery":"external"}}
1181
+ {"name":"store_items","keys":[{"name":"storeItemID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"storeID","type":"number","dataType":"BigInt"},{"name":"itemFolderID","type":"number","dataType":"BigInt"},{"name":"name","type":"string","dataType":"Char","length":200,"default":["name","\"\""]},{"name":"active","type":"boolean","dataType":"Boolean","default":["active","false"]},{"name":"internalNotes","type":"string","dataType":"Char","default":["internalNotes","\"\""]},{"name":"description","type":"string","dataType":"Char","default":["description","\"\""]},{"name":"itemType","type":"string","dataType":"Char","length":20,"default":["itemType","\"product\""]},{"name":"folderID","type":"number","dataType":"BigInt"},{"name":"sizeForID","type":"number","dataType":"BigInt"},{"name":"variantForID","type":"number","dataType":"BigInt"},{"name":"dateCreated","type":"DateTime","dataType":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"vendorID","type":"number","dataType":"BigInt"},{"name":"price","type":"number","dataType":"Decimal","default":["price","0"]},{"name":"maxPrice","type":"number","dataType":"Decimal","default":["maxPrice","0"]}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"itemFolder","fkMap":[{"fk":"itemFolderID","relatedKey":"itemFolderID"}],"relatedName":"StoreItemFolder"},{"name":"fileFolder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"sizeFor","fkMap":[{"fk":"sizeForID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"sizes","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"variantFor","fkMap":[{"fk":"variantForID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"variants","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"vendor","fkMap":[{"fk":"vendorID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"storeItemPrices","isCollection":true,"isInverse":true,"relatedName":"StoreItemPrice"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"mediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"insights","isCollection":true,"isInverse":true,"relatedName":"StoreInsight"},{"name":"lineItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"},{"name":"taxes","isCollection":true,"isInverse":true,"relatedName":"StoreItemTax"},{"name":"taxItems","isCollection":true,"isInverse":true,"relatedName":"StoreItemTax"},{"name":"storeItemTags","isCollection":true,"isInverse":true,"relatedName":"StoreItemTag"}],"queries":{"storeQuery":"external"}}
1182
1182
  );
1183
1183
  modelEntitySchemas["StoreItem"] = StoreItem;
1184
1184
 
@@ -1242,6 +1242,25 @@ export const StoreItemPrice: IModel<IStoreItemPrice,{"storeQuery":"external"},an
1242
1242
  );
1243
1243
  modelEntitySchemas["StoreItemPrice"] = StoreItemPrice;
1244
1244
 
1245
+ export interface IStorePaymentAttempt extends IClrEntity {
1246
+ readonly attemptID?: number;
1247
+ orderID?: number;
1248
+ gatewayID?: number;
1249
+ dateCreated?: DateTime;
1250
+ dateUpdated?: DateTime;
1251
+ success?: boolean;
1252
+ order?: IStoreJournal;
1253
+ gateway?: IStoreLedger;
1254
+ }
1255
+
1256
+ export const StorePaymentAttempt: IModel<IStorePaymentAttempt,any,any> = new Model<IStorePaymentAttempt>(
1257
+ "StorePaymentAttempt",
1258
+ ["attemptID"],
1259
+ { dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),success: false },
1260
+ {"name":"store_payment_attempt","keys":[{"name":"attemptID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"orderID","type":"number","dataType":"BigInt"},{"name":"gatewayID","type":"number","dataType":"BigInt"},{"name":"dateCreated","type":"DateTime","dataType":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"success","type":"boolean","dataType":"Boolean","default":["success","false"]}],"relations":[{"name":"order","fkMap":[{"fk":"orderID","relatedKey":"journalID"}],"relatedName":"StoreJournal"},{"name":"gateway","fkMap":[{"fk":"gatewayID","relatedKey":"ledgerID"}],"relatedName":"StoreLedger"}]}
1261
+ );
1262
+ modelEntitySchemas["StorePaymentAttempt"] = StorePaymentAttempt;
1263
+
1245
1264
  export interface IStoreMediaFile extends IClrEntity {
1246
1265
  storeItemID?: number;
1247
1266
  appFileID?: number;
@@ -1297,19 +1316,34 @@ export interface IStoreLedger extends IClrEntity {
1297
1316
  name?: string;
1298
1317
  description?: string | null;
1299
1318
  balance?: number;
1319
+ paymentGateway?: "paypal" | "phone-pe" | null;
1320
+ isGatewayActive?: boolean;
1321
+ merchantID?: string | null;
1322
+ url?: string | null;
1323
+ username?: string | null;
1324
+ encryptedPassword?: string | null;
1325
+ accessID?: string | null;
1326
+ encryptedSecret?: string | null;
1327
+ country?: string | null;
1328
+ isDefault?: boolean;
1329
+ password?: string;
1330
+ secret?: string;
1300
1331
  store?: IStore;
1301
1332
  parent?: IStoreLedger;
1302
1333
  children?: ICollection<IStoreLedger>;
1303
1334
  contact?: IContact;
1304
1335
  item?: IStoreItem;
1336
+ paymentAttempts?: ICollection<IStorePaymentAttempt>;
1305
1337
  entries?: ICollection<IStoreJournalEntry>;
1306
1338
  }
1307
1339
 
1340
+ export const StoreLedgerPaymentGatewayArray = [{"label":"paypal","value":"paypal"},{"label":"phone-pe","value":"phone-pe"}];
1341
+
1308
1342
  export const StoreLedger: IModel<IStoreLedger,any,any> = new Model<IStoreLedger>(
1309
1343
  "StoreLedger",
1310
1344
  ["ledgerID"],
1311
- { ledgerType: "",name: "",balance: 0 },
1312
- {"name":"store_ledger","keys":[{"name":"ledgerID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"path","type":"string","dataType":"Char","length":400,"default":["path","\"\""]},{"name":"storeID","type":"number","dataType":"BigInt"},{"name":"parentID","type":"number","dataType":"BigInt"},{"name":"contactID","type":"number","dataType":"BigInt"},{"name":"itemID","type":"number","dataType":"BigInt"},{"name":"head","type":"string","dataType":"Char","length":50,"default":["head","\"\""]},{"name":"ledgerType","type":"string","dataType":"Char","length":50,"default":["ledgerType","\"\""]},{"name":"name","type":"string","dataType":"Char","length":400,"default":["name","\"\""]},{"name":"description","type":"string","dataType":"Char","default":["description","\"\""]},{"name":"balance","type":"number","dataType":"Decimal","default":["balance","0"]}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"ledgerID"}],"relatedName":"StoreLedger"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"contact","fkMap":[{"fk":"contactID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"item","fkMap":[{"fk":"itemID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"entries","isCollection":true,"isInverse":true,"relatedName":"StoreJournalEntry"}]}
1345
+ { ledgerType: "",name: "",balance: 0,isGatewayActive: false,isDefault: false },
1346
+ {"name":"store_ledger","keys":[{"name":"ledgerID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"path","type":"string","dataType":"Char","length":400,"default":["path","\"\""]},{"name":"storeID","type":"number","dataType":"BigInt"},{"name":"parentID","type":"number","dataType":"BigInt"},{"name":"contactID","type":"number","dataType":"BigInt"},{"name":"itemID","type":"number","dataType":"BigInt"},{"name":"head","type":"string","dataType":"Char","length":50,"default":["head","\"\""]},{"name":"ledgerType","type":"string","dataType":"Char","length":50,"default":["ledgerType","\"\""]},{"name":"name","type":"string","dataType":"Char","length":400,"default":["name","\"\""]},{"name":"description","type":"string","dataType":"Char","default":["description","\"\""]},{"name":"balance","type":"number","dataType":"Decimal","default":["balance","0"]},{"name":"paymentGateway","type":"string","dataType":"Char","length":50,"default":["paymentGateway","\"paypal\""]},{"name":"isGatewayActive","type":"boolean","dataType":"Boolean","default":["isGatewayActive","false"]},{"name":"merchantID","type":"string","dataType":"Char","length":400,"default":["merchantID","\"\""]},{"name":"url","type":"string","dataType":"Char","default":["url","\"\""]},{"name":"username","type":"string","dataType":"Char","default":["username","\"\""]},{"name":"encryptedPassword","type":"string","dataType":"Char","default":["encryptedPassword","\"\""]},{"name":"accessID","type":"string","dataType":"Char","default":["accessID","\"\""]},{"name":"encryptedSecret","type":"string","dataType":"Char","default":["encryptedSecret","\"\""]},{"name":"country","type":"string","dataType":"Char","length":20,"default":["country","\"\""]},{"name":"isDefault","type":"boolean","dataType":"Boolean","default":["isDefault","false"]}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"ledgerID"}],"relatedName":"StoreLedger"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"contact","fkMap":[{"fk":"contactID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"item","fkMap":[{"fk":"itemID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"paymentAttempts","isCollection":true,"isInverse":true,"relatedName":"StorePaymentAttempt"},{"name":"entries","isCollection":true,"isInverse":true,"relatedName":"StoreJournalEntry"}]}
1313
1347
  );
1314
1348
  modelEntitySchemas["StoreLedger"] = StoreLedger;
1315
1349
 
@@ -1341,6 +1375,7 @@ export interface IStoreJournal extends IClrEntity {
1341
1375
  reference?: IStoreJournal;
1342
1376
  references?: ICollection<IStoreJournal>;
1343
1377
  folder?: IAppFile;
1378
+ paymentAttempts?: ICollection<IStorePaymentAttempt>;
1344
1379
  entries?: ICollection<IStoreJournalEntry>;
1345
1380
  lineItems?: ICollection<IStoreJournalLineItem>;
1346
1381
  }
@@ -1351,7 +1386,7 @@ export const StoreJournal: IModel<IStoreJournal,any,any> = new Model<IStoreJourn
1351
1386
  "StoreJournal",
1352
1387
  ["journalID"],
1353
1388
  { dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),journalType: "order",posted: false,status: "",total: 0,balance: 0,taxExempt: false },
1354
- {"name":"store_journals","keys":[{"name":"journalID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"storeID","type":"number","dataType":"BigInt"},{"name":"dateCreated","type":"DateTime","dataType":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"journalType","type":"string","dataType":"AsciiChar","length":50,"default":["journalType","\"order\""]},{"name":"description","type":"string","dataType":"Char","default":["description","\"\""]},{"name":"posted","type":"boolean","dataType":"Boolean","default":["posted","false"]},{"name":"status","type":"string","dataType":"Char","length":50,"default":["status","\"\""]},{"name":"sellerID","type":"number","dataType":"BigInt"},{"name":"buyerID","type":"number","dataType":"BigInt"},{"name":"buyerBillingAddressID","type":"number","dataType":"BigInt"},{"name":"buyerShippingAddressID","type":"number","dataType":"BigInt"},{"name":"total","type":"number","dataType":"Decimal","default":["total","0"]},{"name":"balance","type":"number","dataType":"Decimal","default":["balance","0"]},{"name":"referenceID","type":"number","dataType":"BigInt"},{"name":"folderID","type":"number","dataType":"BigInt"},{"name":"taxExempt","type":"boolean","dataType":"Boolean","default":["taxExempt","false"]},{"name":"taxExemptNotes","type":"string","dataType":"Char","default":["taxExemptNotes","\"\""]},{"name":"taxExemptTaxID","type":"string","dataType":"Char","default":["taxExemptTaxID","\"\""]}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"seller","fkMap":[{"fk":"sellerID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"buyer","fkMap":[{"fk":"buyerID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"buyerBillingAddress","fkMap":[{"fk":"buyerBillingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"buyerShippingAddress","fkMap":[{"fk":"buyerShippingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"reference","fkMap":[{"fk":"referenceID","relatedKey":"journalID"}],"relatedName":"StoreJournal"},{"name":"references","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"entries","isCollection":true,"isInverse":true,"relatedName":"StoreJournalEntry"},{"name":"lineItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"}]}
1389
+ {"name":"store_journals","keys":[{"name":"journalID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"storeID","type":"number","dataType":"BigInt"},{"name":"dateCreated","type":"DateTime","dataType":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"journalType","type":"string","dataType":"AsciiChar","length":50,"default":["journalType","\"order\""]},{"name":"description","type":"string","dataType":"Char","default":["description","\"\""]},{"name":"posted","type":"boolean","dataType":"Boolean","default":["posted","false"]},{"name":"status","type":"string","dataType":"Char","length":50,"default":["status","\"\""]},{"name":"sellerID","type":"number","dataType":"BigInt"},{"name":"buyerID","type":"number","dataType":"BigInt"},{"name":"buyerBillingAddressID","type":"number","dataType":"BigInt"},{"name":"buyerShippingAddressID","type":"number","dataType":"BigInt"},{"name":"total","type":"number","dataType":"Decimal","default":["total","0"]},{"name":"balance","type":"number","dataType":"Decimal","default":["balance","0"]},{"name":"referenceID","type":"number","dataType":"BigInt"},{"name":"folderID","type":"number","dataType":"BigInt"},{"name":"taxExempt","type":"boolean","dataType":"Boolean","default":["taxExempt","false"]},{"name":"taxExemptNotes","type":"string","dataType":"Char","default":["taxExemptNotes","\"\""]},{"name":"taxExemptTaxID","type":"string","dataType":"Char","default":["taxExemptTaxID","\"\""]}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"seller","fkMap":[{"fk":"sellerID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"buyer","fkMap":[{"fk":"buyerID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"buyerBillingAddress","fkMap":[{"fk":"buyerBillingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"buyerShippingAddress","fkMap":[{"fk":"buyerShippingAddressID","relatedKey":"addressID"}],"relatedName":"ContactAddress"},{"name":"reference","fkMap":[{"fk":"referenceID","relatedKey":"journalID"}],"relatedName":"StoreJournal"},{"name":"references","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"paymentAttempts","isCollection":true,"isInverse":true,"relatedName":"StorePaymentAttempt"},{"name":"entries","isCollection":true,"isInverse":true,"relatedName":"StoreJournalEntry"},{"name":"lineItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"}]}
1355
1390
  );
1356
1391
  modelEntitySchemas["StoreJournal"] = StoreJournal;
1357
1392
 
@@ -1,6 +1,11 @@
1
1
  import WebApp from "@web-atoms/core/dist/web/WebApp";
2
2
  import "../../style/GlobalStyle";
3
3
  import Pack from "@web-atoms/core/dist/Pack";
4
+ import { StoreUrlService } from "./StoreUrlService";
5
+
6
+ import StoreItemDetailView from "./StoreItemDetailView";
7
+ import StoreItemListView from "./StoreItemListView";
8
+ import SiteLogin from "../user/SiteLogin";
4
9
 
5
10
  if(/\d+\.\d+\.\d+\.\d+/i.test(location.hostname)) {
6
11
 
@@ -8,15 +13,24 @@ if(/\d+\.\d+\.\d+\.\d+/i.test(location.hostname)) {
8
13
  WebApp.installStyleSheet("/styles/vars.css");
9
14
  }
10
15
 
16
+ const { buy, order, orders, login, checkout, detail } = StoreUrlService.getParameters();
11
17
 
12
18
  const url = new URL(location.href);
13
19
  (window as any).pageUrl = url;
14
- const { default: view } = await (/\/store\/\d+/.test(url.pathname) || url.searchParams.has("detail")
15
- ? import("./StoreItemDetailView")
16
- : import("./StoreItemListView")) as any;
20
+
21
+ let View: any;
22
+ if (login) {
23
+ View = SiteLogin;
24
+ }
25
+ if (detail) {
26
+ View = StoreItemDetailView;
27
+ }
28
+ if (!View) {
29
+ View = StoreItemListView;
30
+ }
17
31
 
18
32
  @Pack
19
- export default class Empty extends view {
33
+ export default class Empty extends View {
20
34
 
21
35
  }
22
36
 
@@ -13,11 +13,18 @@ import styled from "@web-atoms/core/dist/style/styled";
13
13
  import FetchBuilder from "@web-atoms/core/dist/services/FetchBuilder";
14
14
  import { formatCurrency, formatPrice } from "../../common/currency";
15
15
  import ToggleButtonBar from "@web-atoms/web-controls/dist/basic/ToggleButtonBar";
16
+ import { StoreUrlService } from "./StoreUrlService";
17
+ import WebSiteUserService from "../user/WebSiteUserService";
16
18
 
17
- const url = (window as any).pageUrl as URL;
19
+ let storeID;
20
+ let itemID;
18
21
 
22
+ const { detail } = StoreUrlService.getParameters();
19
23
 
20
- let {1: storeID = "2", 2: itemID = "4w" } = /^\/store\/([^\/]+)\/([^\/]+)\//.exec(url?.pathname) ?? {} as any;
24
+ if (detail) {
25
+ storeID = detail.storeID;
26
+ itemID = detail.productID;
27
+ }
21
28
 
22
29
  storeID = parseInt(storeID, 36);
23
30
  itemID = parseInt(itemID, 36);
@@ -236,7 +243,7 @@ export default class StoreItemDetailView extends AtomControl {
236
243
 
237
244
  getFiles(item: IStoreItem, variant: IStoreItem, size: IStoreItem) {
238
245
  const variantFiles = variant?.mediaFiles?.filter((x) => x.isPreview);
239
- const files = variantFiles ?? item.mediaFiles.filter((x) => x.isPreview);
246
+ const files = variantFiles ?? item.mediaFiles?.filter((x) => x.isPreview) ?? [];
240
247
  if (size?.mediaFiles) {
241
248
  files.push(... size.mediaFiles.filter((x) => x.isPreview));
242
249
  }
@@ -303,7 +310,7 @@ export default class StoreItemDetailView extends AtomControl {
303
310
  <p class="price">
304
311
  <label text={ formatPrice(price) }/>
305
312
  </p>
306
- <button class="buy">Buy</button>
313
+ <button data-click-event="buy-now" class="buy">Buy</button>
307
314
 
308
315
  { this.model.sizes?.length && <ToggleButtonBar
309
316
  items={this.model.sizes}
@@ -335,6 +342,12 @@ export default class StoreItemDetailView extends AtomControl {
335
342
  this.selectedFile = this.model.mediaFiles.find((x) => x.appFileID === id);
336
343
  }
337
344
 
345
+ @Action({ onEvent: "buy-now"})
346
+ async buyNow() {
347
+ const userService = this.resolve(WebSiteUserService);
348
+ const user = await userService.getUser();
349
+ }
350
+
338
351
  async getItem() {
339
352
  return this.entityService
340
353
  .query(StoreItem, "storeQuery")
@@ -231,9 +231,11 @@ export default class StoreItemListView extends AtomControl {
231
231
  <img
232
232
  src={Bind.oneTimeAsync(() => this.downloadImage(item))}
233
233
  />
234
- <button
234
+ <a
235
+ title={item.name || item.variantFor?.name || item.name}
236
+ href={StoreUrlService.productUrl(item)}><button
235
237
  class="buy"
236
- text="Buy"/>
238
+ text="Buy"/></a>
237
239
  <div class="price">
238
240
  <label text={ formatPrice(item.storeItemPrices?.[0] ?? item.variantFor?.storeItemPrices?.[0] )}/>
239
241
  </div>