@entity-access/entity-access 1.0.378 → 1.0.379

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 (249) hide show
  1. package/dist/model/EntityQuery.d.ts.map +1 -1
  2. package/dist/model/EntityQuery.js +10 -0
  3. package/dist/model/EntityQuery.js.map +1 -1
  4. package/dist/model/IFilterWithParameter.d.ts +5 -5
  5. package/dist/model/IFilterWithParameter.d.ts.map +1 -1
  6. package/dist/tsconfig.tsbuildinfo +1 -1
  7. package/package.json +1 -1
  8. package/src/model/EntityQuery.ts +11 -1
  9. package/src/model/IFilterWithParameter.ts +5 -5
  10. package/dist/tests/TestConfig.d.ts +0 -6
  11. package/dist/tests/TestConfig.d.ts.map +0 -1
  12. package/dist/tests/TestConfig.js +0 -3
  13. package/dist/tests/TestConfig.js.map +0 -1
  14. package/dist/tests/db-tests/tests/check-constraint-test.d.ts +0 -3
  15. package/dist/tests/db-tests/tests/check-constraint-test.d.ts.map +0 -1
  16. package/dist/tests/db-tests/tests/check-constraint-test.js +0 -25
  17. package/dist/tests/db-tests/tests/check-constraint-test.js.map +0 -1
  18. package/dist/tests/db-tests/tests/delete-items.d.ts +0 -3
  19. package/dist/tests/db-tests/tests/delete-items.d.ts.map +0 -1
  20. package/dist/tests/db-tests/tests/delete-items.js +0 -25
  21. package/dist/tests/db-tests/tests/delete-items.js.map +0 -1
  22. package/dist/tests/db-tests/tests/filtered-include-items.d.ts +0 -3
  23. package/dist/tests/db-tests/tests/filtered-include-items.d.ts.map +0 -1
  24. package/dist/tests/db-tests/tests/filtered-include-items.js +0 -19
  25. package/dist/tests/db-tests/tests/filtered-include-items.js.map +0 -1
  26. package/dist/tests/db-tests/tests/insert-into.d.ts +0 -3
  27. package/dist/tests/db-tests/tests/insert-into.d.ts.map +0 -1
  28. package/dist/tests/db-tests/tests/insert-into.js +0 -17
  29. package/dist/tests/db-tests/tests/insert-into.js.map +0 -1
  30. package/dist/tests/db-tests/tests/multi-fk-tests.d.ts +0 -3
  31. package/dist/tests/db-tests/tests/multi-fk-tests.d.ts.map +0 -1
  32. package/dist/tests/db-tests/tests/multi-fk-tests.js +0 -29
  33. package/dist/tests/db-tests/tests/multi-fk-tests.js.map +0 -1
  34. package/dist/tests/db-tests/tests/select-identity.d.ts +0 -3
  35. package/dist/tests/db-tests/tests/select-identity.d.ts.map +0 -1
  36. package/dist/tests/db-tests/tests/select-identity.js +0 -16
  37. package/dist/tests/db-tests/tests/select-identity.js.map +0 -1
  38. package/dist/tests/db-tests/tests/select-inverse-one-to-one.d.ts +0 -3
  39. package/dist/tests/db-tests/tests/select-inverse-one-to-one.d.ts.map +0 -1
  40. package/dist/tests/db-tests/tests/select-inverse-one-to-one.js +0 -27
  41. package/dist/tests/db-tests/tests/select-inverse-one-to-one.js.map +0 -1
  42. package/dist/tests/db-tests/tests/select-items-map.d.ts +0 -3
  43. package/dist/tests/db-tests/tests/select-items-map.d.ts.map +0 -1
  44. package/dist/tests/db-tests/tests/select-items-map.js +0 -28
  45. package/dist/tests/db-tests/tests/select-items-map.js.map +0 -1
  46. package/dist/tests/db-tests/tests/select-items-sum.d.ts +0 -3
  47. package/dist/tests/db-tests/tests/select-items-sum.d.ts.map +0 -1
  48. package/dist/tests/db-tests/tests/select-items-sum.js +0 -46
  49. package/dist/tests/db-tests/tests/select-items-sum.js.map +0 -1
  50. package/dist/tests/db-tests/tests/select-items.d.ts +0 -3
  51. package/dist/tests/db-tests/tests/select-items.d.ts.map +0 -1
  52. package/dist/tests/db-tests/tests/select-items.js +0 -30
  53. package/dist/tests/db-tests/tests/select-items.js.map +0 -1
  54. package/dist/tests/db-tests/tests/select-map.d.ts +0 -3
  55. package/dist/tests/db-tests/tests/select-map.d.ts.map +0 -1
  56. package/dist/tests/db-tests/tests/select-map.js +0 -12
  57. package/dist/tests/db-tests/tests/select-map.js.map +0 -1
  58. package/dist/tests/db-tests/tests/select-nested.d.ts +0 -3
  59. package/dist/tests/db-tests/tests/select-nested.d.ts.map +0 -1
  60. package/dist/tests/db-tests/tests/select-nested.js +0 -25
  61. package/dist/tests/db-tests/tests/select-nested.js.map +0 -1
  62. package/dist/tests/db-tests/tests/select-parent.d.ts +0 -3
  63. package/dist/tests/db-tests/tests/select-parent.d.ts.map +0 -1
  64. package/dist/tests/db-tests/tests/select-parent.js +0 -17
  65. package/dist/tests/db-tests/tests/select-parent.js.map +0 -1
  66. package/dist/tests/db-tests/tests/select-related.d.ts +0 -3
  67. package/dist/tests/db-tests/tests/select-related.d.ts.map +0 -1
  68. package/dist/tests/db-tests/tests/select-related.js +0 -20
  69. package/dist/tests/db-tests/tests/select-related.js.map +0 -1
  70. package/dist/tests/db-tests/tests/update-items.d.ts +0 -3
  71. package/dist/tests/db-tests/tests/update-items.d.ts.map +0 -1
  72. package/dist/tests/db-tests/tests/update-items.js +0 -31
  73. package/dist/tests/db-tests/tests/update-items.js.map +0 -1
  74. package/dist/tests/db-tests/tests/update-select.d.ts +0 -3
  75. package/dist/tests/db-tests/tests/update-select.d.ts.map +0 -1
  76. package/dist/tests/db-tests/tests/update-select.js +0 -19
  77. package/dist/tests/db-tests/tests/update-select.js.map +0 -1
  78. package/dist/tests/db-tests/tests/upsert-test.d.ts +0 -3
  79. package/dist/tests/db-tests/tests/upsert-test.d.ts.map +0 -1
  80. package/dist/tests/db-tests/tests/upsert-test.js +0 -31
  81. package/dist/tests/db-tests/tests/upsert-test.js.map +0 -1
  82. package/dist/tests/db-tests/tests/version-history.d.ts +0 -3
  83. package/dist/tests/db-tests/tests/version-history.d.ts.map +0 -1
  84. package/dist/tests/db-tests/tests/version-history.js +0 -16
  85. package/dist/tests/db-tests/tests/version-history.js.map +0 -1
  86. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.d.ts +0 -3
  87. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.d.ts.map +0 -1
  88. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.js +0 -58
  89. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.js.map +0 -1
  90. package/dist/tests/drivers/postgres/connection-test.d.ts +0 -3
  91. package/dist/tests/drivers/postgres/connection-test.d.ts.map +0 -1
  92. package/dist/tests/drivers/postgres/connection-test.js +0 -40
  93. package/dist/tests/drivers/postgres/connection-test.js.map +0 -1
  94. package/dist/tests/drivers/sql-server/sql-server-test.d.ts +0 -2
  95. package/dist/tests/drivers/sql-server/sql-server-test.d.ts.map +0 -1
  96. package/dist/tests/drivers/sql-server/sql-server-test.js +0 -6
  97. package/dist/tests/drivers/sql-server/sql-server-test.js.map +0 -1
  98. package/dist/tests/eternity/child-tests.d.ts +0 -3
  99. package/dist/tests/eternity/child-tests.d.ts.map +0 -1
  100. package/dist/tests/eternity/child-tests.js +0 -97
  101. package/dist/tests/eternity/child-tests.js.map +0 -1
  102. package/dist/tests/eternity/eternity-tests.d.ts +0 -3
  103. package/dist/tests/eternity/eternity-tests.d.ts.map +0 -1
  104. package/dist/tests/eternity/eternity-tests.js +0 -85
  105. package/dist/tests/eternity/eternity-tests.js.map +0 -1
  106. package/dist/tests/eternity/external-event-tests.d.ts +0 -3
  107. package/dist/tests/eternity/external-event-tests.d.ts.map +0 -1
  108. package/dist/tests/eternity/external-event-tests.js +0 -108
  109. package/dist/tests/eternity/external-event-tests.js.map +0 -1
  110. package/dist/tests/eternity/throttle-tests.d.ts +0 -3
  111. package/dist/tests/eternity/throttle-tests.d.ts.map +0 -1
  112. package/dist/tests/eternity/throttle-tests.js +0 -86
  113. package/dist/tests/eternity/throttle-tests.js.map +0 -1
  114. package/dist/tests/expressions/left-joins/child-joins.d.ts +0 -2
  115. package/dist/tests/expressions/left-joins/child-joins.d.ts.map +0 -1
  116. package/dist/tests/expressions/left-joins/child-joins.js +0 -114
  117. package/dist/tests/expressions/left-joins/child-joins.js.map +0 -1
  118. package/dist/tests/expressions/sanitize/sanitize-test.d.ts +0 -2
  119. package/dist/tests/expressions/sanitize/sanitize-test.d.ts.map +0 -1
  120. package/dist/tests/expressions/sanitize/sanitize-test.js +0 -8
  121. package/dist/tests/expressions/sanitize/sanitize-test.js.map +0 -1
  122. package/dist/tests/expressions/select/select.d.ts +0 -2
  123. package/dist/tests/expressions/select/select.d.ts.map +0 -1
  124. package/dist/tests/expressions/select/select.js +0 -11
  125. package/dist/tests/expressions/select/select.js.map +0 -1
  126. package/dist/tests/expressions/self-joins/self-joins.d.ts +0 -2
  127. package/dist/tests/expressions/self-joins/self-joins.d.ts.map +0 -1
  128. package/dist/tests/expressions/self-joins/self-joins.js +0 -14
  129. package/dist/tests/expressions/self-joins/self-joins.js.map +0 -1
  130. package/dist/tests/expressions/simple/parse-array.d.ts +0 -2
  131. package/dist/tests/expressions/simple/parse-array.d.ts.map +0 -1
  132. package/dist/tests/expressions/simple/parse-array.js +0 -21
  133. package/dist/tests/expressions/simple/parse-array.js.map +0 -1
  134. package/dist/tests/expressions/simple/parse-arrow.d.ts +0 -2
  135. package/dist/tests/expressions/simple/parse-arrow.d.ts.map +0 -1
  136. package/dist/tests/expressions/simple/parse-arrow.js +0 -36
  137. package/dist/tests/expressions/simple/parse-arrow.js.map +0 -1
  138. package/dist/tests/expressions/simple/parse-complex.d.ts +0 -2
  139. package/dist/tests/expressions/simple/parse-complex.d.ts.map +0 -1
  140. package/dist/tests/expressions/simple/parse-complex.js +0 -11
  141. package/dist/tests/expressions/simple/parse-complex.js.map +0 -1
  142. package/dist/tests/expressions/trimInternal.d.ts +0 -3
  143. package/dist/tests/expressions/trimInternal.d.ts.map +0 -1
  144. package/dist/tests/expressions/trimInternal.js +0 -24
  145. package/dist/tests/expressions/trimInternal.js.map +0 -1
  146. package/dist/tests/model/ShoppingContext.d.ts +0 -140
  147. package/dist/tests/model/ShoppingContext.d.ts.map +0 -1
  148. package/dist/tests/model/ShoppingContext.js +0 -440
  149. package/dist/tests/model/ShoppingContext.js.map +0 -1
  150. package/dist/tests/model/UseFile.d.ts +0 -8
  151. package/dist/tests/model/UseFile.d.ts.map +0 -1
  152. package/dist/tests/model/UseFile.js +0 -25
  153. package/dist/tests/model/UseFile.js.map +0 -1
  154. package/dist/tests/model/createContext.d.ts +0 -6
  155. package/dist/tests/model/createContext.d.ts.map +0 -1
  156. package/dist/tests/model/createContext.js +0 -327
  157. package/dist/tests/model/createContext.js.map +0 -1
  158. package/dist/tests/pool/pool-test.d.ts +0 -2
  159. package/dist/tests/pool/pool-test.d.ts.map +0 -1
  160. package/dist/tests/pool/pool-test.js +0 -66
  161. package/dist/tests/pool/pool-test.js.map +0 -1
  162. package/dist/tests/query/combine.d.ts +0 -2
  163. package/dist/tests/query/combine.d.ts.map +0 -1
  164. package/dist/tests/query/combine.js +0 -20
  165. package/dist/tests/query/combine.js.map +0 -1
  166. package/dist/tests/security/ShoppingContextEvents.d.ts +0 -5
  167. package/dist/tests/security/ShoppingContextEvents.d.ts.map +0 -1
  168. package/dist/tests/security/ShoppingContextEvents.js +0 -20
  169. package/dist/tests/security/ShoppingContextEvents.js.map +0 -1
  170. package/dist/tests/security/events/OrderEvents.d.ts +0 -17
  171. package/dist/tests/security/events/OrderEvents.d.ts.map +0 -1
  172. package/dist/tests/security/events/OrderEvents.js +0 -62
  173. package/dist/tests/security/events/OrderEvents.js.map +0 -1
  174. package/dist/tests/security/events/ProductEvents.d.ts +0 -23
  175. package/dist/tests/security/events/ProductEvents.d.ts.map +0 -1
  176. package/dist/tests/security/events/ProductEvents.js +0 -79
  177. package/dist/tests/security/events/ProductEvents.js.map +0 -1
  178. package/dist/tests/security/events/UserEvents.d.ts +0 -10
  179. package/dist/tests/security/events/UserEvents.d.ts.map +0 -1
  180. package/dist/tests/security/events/UserEvents.js +0 -26
  181. package/dist/tests/security/events/UserEvents.js.map +0 -1
  182. package/dist/tests/security/events/UserFileEvents.d.ts +0 -7
  183. package/dist/tests/security/events/UserFileEvents.d.ts.map +0 -1
  184. package/dist/tests/security/events/UserFileEvents.js +0 -7
  185. package/dist/tests/security/events/UserFileEvents.js.map +0 -1
  186. package/dist/tests/security/events/UserInfo.d.ts +0 -5
  187. package/dist/tests/security/events/UserInfo.d.ts.map +0 -1
  188. package/dist/tests/security/events/UserInfo.js +0 -9
  189. package/dist/tests/security/events/UserInfo.js.map +0 -1
  190. package/dist/tests/security/tests/include-items.d.ts +0 -3
  191. package/dist/tests/security/tests/include-items.d.ts.map +0 -1
  192. package/dist/tests/security/tests/include-items.js +0 -15
  193. package/dist/tests/security/tests/include-items.js.map +0 -1
  194. package/dist/tests/security/tests/place-order.d.ts +0 -3
  195. package/dist/tests/security/tests/place-order.d.ts.map +0 -1
  196. package/dist/tests/security/tests/place-order.js +0 -139
  197. package/dist/tests/security/tests/place-order.js.map +0 -1
  198. package/dist/tests/security/tests/test-events.d.ts +0 -3
  199. package/dist/tests/security/tests/test-events.d.ts.map +0 -1
  200. package/dist/tests/security/tests/test-events.js +0 -54
  201. package/dist/tests/security/tests/test-events.js.map +0 -1
  202. package/src/tests/TestConfig.ts +0 -6
  203. package/src/tests/db-tests/tests/check-constraint-test.ts +0 -32
  204. package/src/tests/db-tests/tests/delete-items.ts +0 -42
  205. package/src/tests/db-tests/tests/filtered-include-items.ts +0 -28
  206. package/src/tests/db-tests/tests/insert-into.ts +0 -24
  207. package/src/tests/db-tests/tests/multi-fk-tests.ts +0 -37
  208. package/src/tests/db-tests/tests/select-identity.ts +0 -23
  209. package/src/tests/db-tests/tests/select-inverse-one-to-one.ts +0 -39
  210. package/src/tests/db-tests/tests/select-items-map.ts +0 -38
  211. package/src/tests/db-tests/tests/select-items-sum.ts +0 -60
  212. package/src/tests/db-tests/tests/select-items.ts +0 -49
  213. package/src/tests/db-tests/tests/select-map.ts +0 -19
  214. package/src/tests/db-tests/tests/select-nested.ts +0 -36
  215. package/src/tests/db-tests/tests/select-parent.ts +0 -25
  216. package/src/tests/db-tests/tests/select-related.ts +0 -35
  217. package/src/tests/db-tests/tests/update-items.ts +0 -44
  218. package/src/tests/db-tests/tests/update-select.ts +0 -28
  219. package/src/tests/db-tests/tests/upsert-test.ts +0 -48
  220. package/src/tests/db-tests/tests/version-history.ts +0 -24
  221. package/src/tests/db-tests/transaction-save-point/transaction-save-point.ts +0 -48
  222. package/src/tests/drivers/postgres/connection-test.ts +0 -39
  223. package/src/tests/drivers/sql-server/sql-server-test.ts +0 -9
  224. package/src/tests/eternity/child-tests.ts +0 -119
  225. package/src/tests/eternity/eternity-tests.ts +0 -108
  226. package/src/tests/eternity/external-event-tests.ts +0 -133
  227. package/src/tests/eternity/throttle-tests.ts +0 -100
  228. package/src/tests/expressions/left-joins/child-joins.ts +0 -131
  229. package/src/tests/expressions/sanitize/sanitize-test.ts +0 -17
  230. package/src/tests/expressions/select/select.ts +0 -21
  231. package/src/tests/expressions/self-joins/self-joins.ts +0 -23
  232. package/src/tests/expressions/simple/parse-array.ts +0 -31
  233. package/src/tests/expressions/simple/parse-arrow.ts +0 -65
  234. package/src/tests/expressions/simple/parse-complex.ts +0 -20
  235. package/src/tests/expressions/trimInternal.ts +0 -25
  236. package/src/tests/model/ShoppingContext.ts +0 -435
  237. package/src/tests/model/UseFile.ts +0 -24
  238. package/src/tests/model/createContext.ts +0 -367
  239. package/src/tests/pool/pool-test.ts +0 -79
  240. package/src/tests/query/combine.ts +0 -28
  241. package/src/tests/security/ShoppingContextEvents.ts +0 -23
  242. package/src/tests/security/events/OrderEvents.ts +0 -72
  243. package/src/tests/security/events/ProductEvents.ts +0 -102
  244. package/src/tests/security/events/UserEvents.ts +0 -28
  245. package/src/tests/security/events/UserFileEvents.ts +0 -11
  246. package/src/tests/security/events/UserInfo.ts +0 -7
  247. package/src/tests/security/tests/include-items.ts +0 -20
  248. package/src/tests/security/tests/place-order.ts +0 -138
  249. package/src/tests/security/tests/test-events.ts +0 -55
@@ -1,435 +0,0 @@
1
- import EntityContext from "../../model/EntityContext.js";
2
- import Column from "../../decorators/Column.js";
3
- import { RelateTo, RelateToOne } from "../../decorators/Relate.js";
4
- import Table from "../../decorators/Table.js";
5
- import Index from "../../decorators/Index.js";
6
- import DateTime from "../../types/DateTime.js";
7
- import { UserFile } from "./UseFile.js";
8
- import Sql from "../../sql/Sql.js";
9
- import MultiForeignKeys from "../../decorators/ForeignKey.js";
10
- import CheckConstraint from "../../decorators/CheckConstraint.js";
11
-
12
- export const statusPublished = "published";
13
-
14
- export class ShoppingContext extends EntityContext {
15
-
16
- public categories = this.model.register(Category);
17
-
18
- public productCategories = this.model.register(ProductCategory);
19
-
20
- public products = this.model.register(Product);
21
-
22
- public productPrices = this.model.register(ProductPrice);
23
-
24
- public orders = this.model.register(Order);
25
-
26
- public orderItems = this.model.register(OrderItem);
27
-
28
- public users = this.model.register(User);
29
-
30
- public userCategories = this.model.register(UserCategory);
31
-
32
- public userProfiles = this.model.register(UserProfile);
33
-
34
- public profilePhotos = this.model.register(ProfilePhoto);
35
-
36
- public userFiles = this.model.register(UserFile);
37
-
38
- public emailAddresses = this.model.register(EmailAddress);
39
-
40
- public userCategoryTags = this.model.register(UserCategoryTag);
41
-
42
- public messages = this.model.register(UserMessage);
43
-
44
- public archivedMessages = this.model.register(ArchivedUserMessage);
45
- }
46
-
47
- @Table("Users")
48
- @Index({
49
- name: "IX_Unique_Users",
50
- columns: [(x) => x.userName],
51
- unique: true
52
- })
53
- export class User {
54
-
55
- @Column({ key: true , generated: "identity", dataType: "BigInt" })
56
- public userID: number;
57
-
58
- @Column({})
59
- public dateCreated: Date;
60
-
61
- @Column({ dataType: "Char", length: 200 })
62
- public userName: string;
63
-
64
- @Column({ dataType: "BigInt", nullable: true })
65
- @RelateTo({
66
- type: () => UserFile,
67
- property: (u) => u.photo,
68
- inverseProperty: (uf) => uf.photoUsers
69
- })
70
- public photoID: number;
71
-
72
- public profile: UserProfile;
73
-
74
- public ownedProducts: Product[];
75
-
76
- public orders: Order[];
77
-
78
- public categories: UserCategory[];
79
-
80
- public files: UserFile[];
81
-
82
- public photo: UserFile;
83
- }
84
-
85
- @Table("EmailAddresses")
86
- @Index({
87
- name: "IX_Unique_EmailAddress",
88
- columns: [{ name: (x) => x.address , descending: false }],
89
- unique: true
90
- })
91
- export class EmailAddress {
92
-
93
- @Column({ key: true, generated: "identity"})
94
- public id: number;
95
-
96
- @Column({ dataType: "Char", length: 200 })
97
- public address: string;
98
-
99
- @Column({ dataType: "Char", length: 200, nullable: true })
100
- public name: string;
101
-
102
- }
103
-
104
- @Table("Categories")
105
- export class Category {
106
-
107
- @Column({ key: true, dataType: "Char", length: 200 })
108
- public categoryID: string;
109
-
110
- @Column({ length: 200 })
111
- public name: string;
112
-
113
-
114
- @Column({ computed: (x) => Sql.text.lower(x.name)})
115
- public lowerName: string;
116
-
117
- @Column({ dataType: "Char", length: 200, nullable: true })
118
- @RelateTo(Category, {
119
- property: (c) => c.parent,
120
- inverseProperty: (c) => c.children
121
- })
122
- public parentID: string;
123
-
124
- @Column({
125
- dataType: "Char",
126
- length: 400,
127
- nullable: true,
128
- computed: (x) => x.parentID === null ? null : Sql.text.concatImmutable(Sql.cast.asText(x.parentID), '/', Sql.text.lower(x.name))
129
- })
130
- public path: string;
131
-
132
- public productCategories: ProductCategory[];
133
-
134
- public users: UserCategory[];
135
-
136
- public children: Category[];
137
-
138
- public parent: Category;
139
-
140
- }
141
-
142
- @Table("UserProfile")
143
- export class UserProfile {
144
-
145
- @Column({ key: true, dataType: "BigInt"})
146
- @RelateToOne(User, {
147
- property: (up) => up.user,
148
- inverseProperty: (u) => u.profile,
149
- foreignKeyConstraint: {
150
- name: "FC_UserProfiles_User",
151
- cascade: "delete"
152
- }
153
- })
154
- public profileID: number;
155
-
156
- public fullName: string;
157
-
158
- public user: User;
159
-
160
- public photos: ProfilePhoto[];
161
-
162
- }
163
-
164
- @Table("ProfilePhotos")
165
- export class ProfilePhoto {
166
-
167
- @Column({ key: true, dataType: "BigInt", generated: "identity" })
168
- public photoID: number;
169
-
170
- @Column ({ dataType: "BigInt"})
171
- @RelateTo(UserProfile, {
172
- property: (pp) => pp.profile,
173
- inverseProperty: (up) => up.photos
174
- })
175
- public profileID: number;
176
-
177
- @Column({ dataType: "Char"})
178
- public url: string;
179
-
180
- public profile: UserProfile;
181
- }
182
-
183
- @Table("UserCategories")
184
- export class UserCategory {
185
-
186
- @Column({ key: true, dataType: "BigInt" })
187
- @RelateTo(User, {
188
- property: (uc) => uc.user,
189
- inverseProperty: (u) => u.categories
190
- })
191
- public userID: number;
192
-
193
- @Column({ key: true, dataType: "Char", length: 200 })
194
- @RelateTo(Category, {
195
- property: (uc) => uc.category,
196
- inverseProperty: (c) => c.users
197
- })
198
- public categoryID: string;
199
-
200
- @Column({ default: () => Sql.date.now()})
201
- public lastUpdated: DateTime;
202
-
203
- public user: User;
204
-
205
- public category: Category;
206
-
207
- public tags: UserCategoryTag[];
208
- }
209
-
210
- @Table("UserCategoryTags")
211
- export class UserCategoryTag {
212
-
213
- @Column({ key: true, dataType: "BigInt", generated: "identity"})
214
- tagID: number;
215
-
216
- @Column({ dataType: "Char", length: 200 })
217
- tag: string;
218
-
219
- @Column({ dataType: "BigInt"})
220
- public userID: number;
221
-
222
- @Column({ dataType: "Char", length: 200 })
223
- public categoryID: string;
224
-
225
- @MultiForeignKeys(UserCategory, {
226
- inverseProperty: (x) => x.tags,
227
- foreignKeys: [
228
- { foreignKey: (x) => x.userID, key: (x) => x.userID },
229
- { foreignKey: (x) => x.categoryID, key: (x) => x.categoryID}
230
- ]
231
- }
232
- )
233
- public userCategory: UserCategory;
234
-
235
- }
236
-
237
- @Table("Products")
238
- export class Product {
239
-
240
- @Column({ key: true, generated: "identity", dataType: "BigInt" })
241
- public productID: number;
242
-
243
- @Column()
244
- public name: string;
245
-
246
- @Column({ nullable: true })
247
- @RelateTo(User, {
248
- property: (product) => product.owner,
249
- inverseProperty: (user) => user.ownedProducts
250
- })
251
- public ownerID: number;
252
-
253
- @Column({ dataType: "Char", length: 20})
254
- public status: string;
255
-
256
- @Column({ dataType: "Char", nullable: true})
257
- public productDescription: string;
258
-
259
- public orderItems: OrderItem[];
260
- public prices: ProductPrice[];
261
- public categories: ProductCategory[];
262
- public owner: User;
263
-
264
- public updated: string[];
265
- public nameUpdated: boolean;
266
- afterInsertInvoked: boolean;
267
-
268
- }
269
-
270
-
271
- @Table("ProductCategories")
272
- export class ProductCategory {
273
-
274
- @Column({ key: true, dataType: "BigInt", generated: "identity" })
275
- public productCategoryID: number;
276
-
277
- @Column({ dataType: "BigInt" })
278
- @RelateTo(Product, {
279
- property: (pc) => pc.product,
280
- inverseProperty: (p) => p.categories
281
- })
282
- public productID: number;
283
-
284
- @Column({ dataType: "Char", length: 200})
285
- @RelateTo(Category, {
286
- property: (pc) => pc.category,
287
- inverseProperty: (c) => c.productCategories
288
- })
289
- public categoryID: string;
290
-
291
- public product: Product;
292
-
293
- public category: Category;
294
- }
295
-
296
- @Table("ProductPrices")
297
- @CheckConstraint({
298
- name: "CX_ProductPrices_PositivePrice",
299
- filter: (x) => x.amount > 0
300
- })
301
- export class ProductPrice {
302
-
303
- @Column({ key: true, generated: "identity", dataType: "BigInt"})
304
- public priceID: number;
305
-
306
- @Column()
307
- public active: boolean;
308
-
309
- @Column()
310
- public startDate: Date;
311
-
312
- @Column({ nullable: true})
313
- public endDate?: Date;
314
-
315
- @Column({ })
316
- public amount: number;
317
-
318
- @Column({})
319
- @RelateTo(Product, {
320
- property: (price) => price.product,
321
- inverseProperty: (p) => p.prices
322
- })
323
- public productID: number;
324
-
325
- public product: Product;
326
- public orderItems: OrderItem[];
327
- }
328
-
329
- @Table("Orders")
330
- @Index({
331
- name: "IX_Orders_PO",
332
- columns: [{ name: (x) => x.purchaseOrder , descending: false }],
333
- filter: (x) => x.purchaseOrder !== null
334
- })
335
- export class Order {
336
-
337
- @Column({ key: true, generated: "identity", dataType: "BigInt"})
338
- public orderID: number;
339
-
340
- @Column()
341
- public orderDate: Date;
342
-
343
- @Column()
344
- @RelateTo(User, {
345
- property: (order) => order.customer,
346
- inverseProperty: (user) => user.orders
347
- })
348
- public customerID: number;
349
-
350
- @Column({ dataType: "Char", length: 200, nullable: true})
351
- public purchaseOrder: string;
352
-
353
- @Column({ dataType: "Char", length: 20, default: () => "pending"})
354
- public status: string;
355
-
356
- @Column({ dataType: "Decimal", default: () => 0})
357
- public total: number;
358
-
359
- public orderItems: OrderItem[];
360
-
361
- public customer: User;
362
-
363
- }
364
-
365
- @Table("OrderItems")
366
- export class OrderItem {
367
-
368
- @Column({ key: true, generated: "identity", dataType: "BigInt"})
369
- public orderItemID: number;
370
-
371
- @Column()
372
- @RelateTo({
373
- type: () => Order,
374
- property: (orderItem) => orderItem.order,
375
- inverseProperty: (order) => order.orderItems,
376
- foreignKeyConstraint: {
377
- cascade: "delete"
378
- }
379
- })
380
- public orderID: number;
381
-
382
- @Column()
383
- @RelateTo(Product, {
384
- property: (orderItem) => orderItem.product,
385
- inverseProperty: (product) => product.orderItems
386
- })
387
- public productID: number;
388
-
389
- @Column()
390
- @RelateTo(ProductPrice, {
391
- property: (orderItem) => orderItem.productPrice,
392
- inverseProperty: (productPrice) => productPrice.orderItems
393
- })
394
- public priceID: number;
395
-
396
- @Column()
397
- public amount: number;
398
-
399
- public order: Order;
400
- public product: Product;
401
- public productPrice: ProductPrice;
402
-
403
- }
404
-
405
- @Table("UserMessages")
406
- export class UserMessage {
407
-
408
- @Column({ dataType: "BigInt", key: true, generated: "identity"})
409
- messageID: number;
410
-
411
- @Column({ dataType: "BigInt"})
412
- fromID: number;
413
-
414
- @Column({ dataType: "BigInt"})
415
- toID: number;
416
-
417
- @Column({ dataType: "Char"})
418
- message: string;
419
- }
420
-
421
- @Table("ArchivedUserMessages")
422
- export class ArchivedUserMessage {
423
-
424
- @Column({ dataType: "BigInt", key: true, generated: "identity"})
425
- messageID: number;
426
-
427
- @Column({ dataType: "BigInt"})
428
- fromID: number;
429
-
430
- @Column({ dataType: "BigInt"})
431
- toID: number;
432
-
433
- @Column({ dataType: "Char"})
434
- message: string;
435
- }
@@ -1,24 +0,0 @@
1
- import Column from "../../decorators/Column.js";
2
- import { RelateTo } from "../../decorators/Relate.js";
3
- import Table from "../../decorators/Table.js";
4
- import { User } from "./ShoppingContext.js";
5
-
6
- @Table("UserFiles")
7
- export class UserFile {
8
-
9
- @Column({ dataType: "BigInt", key: true, generated: "identity" })
10
- public fileID: number;
11
-
12
- @Column({ dataType: "BigInt"})
13
- @RelateTo({
14
- type: () => User,
15
- property: (uf) => uf.user,
16
- inverseProperty: (u) => u.files
17
- })
18
- public ownerID: number;
19
-
20
- public user: User;
21
-
22
- public photoUsers: User[];
23
-
24
- }