@entity-access/entity-access 1.0.377 → 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 (264) hide show
  1. package/dist/compiler/postgres/PostgreSqlMethodTransformer.d.ts.map +1 -1
  2. package/dist/compiler/postgres/PostgreSqlMethodTransformer.js +27 -1
  3. package/dist/compiler/postgres/PostgreSqlMethodTransformer.js.map +1 -1
  4. package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.d.ts.map +1 -1
  5. package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.js +26 -0
  6. package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.js.map +1 -1
  7. package/dist/drivers/postgres/PostgreSqlDriver.d.ts.map +1 -1
  8. package/dist/drivers/postgres/PostgreSqlDriver.js +1 -0
  9. package/dist/drivers/postgres/PostgreSqlDriver.js.map +1 -1
  10. package/dist/model/EntityQuery.d.ts.map +1 -1
  11. package/dist/model/EntityQuery.js +10 -0
  12. package/dist/model/EntityQuery.js.map +1 -1
  13. package/dist/model/IFilterWithParameter.d.ts +5 -5
  14. package/dist/model/IFilterWithParameter.d.ts.map +1 -1
  15. package/dist/sql/ISql.d.ts +10 -0
  16. package/dist/sql/ISql.d.ts.map +1 -1
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/package.json +2 -2
  19. package/src/compiler/postgres/PostgreSqlMethodTransformer.ts +27 -1
  20. package/src/compiler/sql-server/SqlServerSqlMethodTransformer.ts +26 -0
  21. package/src/drivers/postgres/PostgreSqlDriver.ts +1 -0
  22. package/src/model/EntityQuery.ts +11 -1
  23. package/src/model/IFilterWithParameter.ts +5 -5
  24. package/src/sql/ISql.ts +11 -0
  25. package/dist/tests/TestConfig.d.ts +0 -6
  26. package/dist/tests/TestConfig.d.ts.map +0 -1
  27. package/dist/tests/TestConfig.js +0 -3
  28. package/dist/tests/TestConfig.js.map +0 -1
  29. package/dist/tests/db-tests/tests/check-constraint-test.d.ts +0 -3
  30. package/dist/tests/db-tests/tests/check-constraint-test.d.ts.map +0 -1
  31. package/dist/tests/db-tests/tests/check-constraint-test.js +0 -25
  32. package/dist/tests/db-tests/tests/check-constraint-test.js.map +0 -1
  33. package/dist/tests/db-tests/tests/delete-items.d.ts +0 -3
  34. package/dist/tests/db-tests/tests/delete-items.d.ts.map +0 -1
  35. package/dist/tests/db-tests/tests/delete-items.js +0 -25
  36. package/dist/tests/db-tests/tests/delete-items.js.map +0 -1
  37. package/dist/tests/db-tests/tests/filtered-include-items.d.ts +0 -3
  38. package/dist/tests/db-tests/tests/filtered-include-items.d.ts.map +0 -1
  39. package/dist/tests/db-tests/tests/filtered-include-items.js +0 -19
  40. package/dist/tests/db-tests/tests/filtered-include-items.js.map +0 -1
  41. package/dist/tests/db-tests/tests/insert-into.d.ts +0 -3
  42. package/dist/tests/db-tests/tests/insert-into.d.ts.map +0 -1
  43. package/dist/tests/db-tests/tests/insert-into.js +0 -17
  44. package/dist/tests/db-tests/tests/insert-into.js.map +0 -1
  45. package/dist/tests/db-tests/tests/multi-fk-tests.d.ts +0 -3
  46. package/dist/tests/db-tests/tests/multi-fk-tests.d.ts.map +0 -1
  47. package/dist/tests/db-tests/tests/multi-fk-tests.js +0 -29
  48. package/dist/tests/db-tests/tests/multi-fk-tests.js.map +0 -1
  49. package/dist/tests/db-tests/tests/select-identity.d.ts +0 -3
  50. package/dist/tests/db-tests/tests/select-identity.d.ts.map +0 -1
  51. package/dist/tests/db-tests/tests/select-identity.js +0 -16
  52. package/dist/tests/db-tests/tests/select-identity.js.map +0 -1
  53. package/dist/tests/db-tests/tests/select-inverse-one-to-one.d.ts +0 -3
  54. package/dist/tests/db-tests/tests/select-inverse-one-to-one.d.ts.map +0 -1
  55. package/dist/tests/db-tests/tests/select-inverse-one-to-one.js +0 -27
  56. package/dist/tests/db-tests/tests/select-inverse-one-to-one.js.map +0 -1
  57. package/dist/tests/db-tests/tests/select-items-map.d.ts +0 -3
  58. package/dist/tests/db-tests/tests/select-items-map.d.ts.map +0 -1
  59. package/dist/tests/db-tests/tests/select-items-map.js +0 -28
  60. package/dist/tests/db-tests/tests/select-items-map.js.map +0 -1
  61. package/dist/tests/db-tests/tests/select-items-sum.d.ts +0 -3
  62. package/dist/tests/db-tests/tests/select-items-sum.d.ts.map +0 -1
  63. package/dist/tests/db-tests/tests/select-items-sum.js +0 -46
  64. package/dist/tests/db-tests/tests/select-items-sum.js.map +0 -1
  65. package/dist/tests/db-tests/tests/select-items.d.ts +0 -3
  66. package/dist/tests/db-tests/tests/select-items.d.ts.map +0 -1
  67. package/dist/tests/db-tests/tests/select-items.js +0 -30
  68. package/dist/tests/db-tests/tests/select-items.js.map +0 -1
  69. package/dist/tests/db-tests/tests/select-map.d.ts +0 -3
  70. package/dist/tests/db-tests/tests/select-map.d.ts.map +0 -1
  71. package/dist/tests/db-tests/tests/select-map.js +0 -12
  72. package/dist/tests/db-tests/tests/select-map.js.map +0 -1
  73. package/dist/tests/db-tests/tests/select-nested.d.ts +0 -3
  74. package/dist/tests/db-tests/tests/select-nested.d.ts.map +0 -1
  75. package/dist/tests/db-tests/tests/select-nested.js +0 -25
  76. package/dist/tests/db-tests/tests/select-nested.js.map +0 -1
  77. package/dist/tests/db-tests/tests/select-parent.d.ts +0 -3
  78. package/dist/tests/db-tests/tests/select-parent.d.ts.map +0 -1
  79. package/dist/tests/db-tests/tests/select-parent.js +0 -17
  80. package/dist/tests/db-tests/tests/select-parent.js.map +0 -1
  81. package/dist/tests/db-tests/tests/select-related.d.ts +0 -3
  82. package/dist/tests/db-tests/tests/select-related.d.ts.map +0 -1
  83. package/dist/tests/db-tests/tests/select-related.js +0 -20
  84. package/dist/tests/db-tests/tests/select-related.js.map +0 -1
  85. package/dist/tests/db-tests/tests/update-items.d.ts +0 -3
  86. package/dist/tests/db-tests/tests/update-items.d.ts.map +0 -1
  87. package/dist/tests/db-tests/tests/update-items.js +0 -31
  88. package/dist/tests/db-tests/tests/update-items.js.map +0 -1
  89. package/dist/tests/db-tests/tests/update-select.d.ts +0 -3
  90. package/dist/tests/db-tests/tests/update-select.d.ts.map +0 -1
  91. package/dist/tests/db-tests/tests/update-select.js +0 -19
  92. package/dist/tests/db-tests/tests/update-select.js.map +0 -1
  93. package/dist/tests/db-tests/tests/upsert-test.d.ts +0 -3
  94. package/dist/tests/db-tests/tests/upsert-test.d.ts.map +0 -1
  95. package/dist/tests/db-tests/tests/upsert-test.js +0 -31
  96. package/dist/tests/db-tests/tests/upsert-test.js.map +0 -1
  97. package/dist/tests/db-tests/tests/version-history.d.ts +0 -3
  98. package/dist/tests/db-tests/tests/version-history.d.ts.map +0 -1
  99. package/dist/tests/db-tests/tests/version-history.js +0 -16
  100. package/dist/tests/db-tests/tests/version-history.js.map +0 -1
  101. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.d.ts +0 -3
  102. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.d.ts.map +0 -1
  103. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.js +0 -58
  104. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.js.map +0 -1
  105. package/dist/tests/drivers/postgres/connection-test.d.ts +0 -3
  106. package/dist/tests/drivers/postgres/connection-test.d.ts.map +0 -1
  107. package/dist/tests/drivers/postgres/connection-test.js +0 -40
  108. package/dist/tests/drivers/postgres/connection-test.js.map +0 -1
  109. package/dist/tests/drivers/sql-server/sql-server-test.d.ts +0 -2
  110. package/dist/tests/drivers/sql-server/sql-server-test.d.ts.map +0 -1
  111. package/dist/tests/drivers/sql-server/sql-server-test.js +0 -6
  112. package/dist/tests/drivers/sql-server/sql-server-test.js.map +0 -1
  113. package/dist/tests/eternity/child-tests.d.ts +0 -3
  114. package/dist/tests/eternity/child-tests.d.ts.map +0 -1
  115. package/dist/tests/eternity/child-tests.js +0 -97
  116. package/dist/tests/eternity/child-tests.js.map +0 -1
  117. package/dist/tests/eternity/eternity-tests.d.ts +0 -3
  118. package/dist/tests/eternity/eternity-tests.d.ts.map +0 -1
  119. package/dist/tests/eternity/eternity-tests.js +0 -85
  120. package/dist/tests/eternity/eternity-tests.js.map +0 -1
  121. package/dist/tests/eternity/external-event-tests.d.ts +0 -3
  122. package/dist/tests/eternity/external-event-tests.d.ts.map +0 -1
  123. package/dist/tests/eternity/external-event-tests.js +0 -108
  124. package/dist/tests/eternity/external-event-tests.js.map +0 -1
  125. package/dist/tests/eternity/throttle-tests.d.ts +0 -3
  126. package/dist/tests/eternity/throttle-tests.d.ts.map +0 -1
  127. package/dist/tests/eternity/throttle-tests.js +0 -86
  128. package/dist/tests/eternity/throttle-tests.js.map +0 -1
  129. package/dist/tests/expressions/left-joins/child-joins.d.ts +0 -2
  130. package/dist/tests/expressions/left-joins/child-joins.d.ts.map +0 -1
  131. package/dist/tests/expressions/left-joins/child-joins.js +0 -114
  132. package/dist/tests/expressions/left-joins/child-joins.js.map +0 -1
  133. package/dist/tests/expressions/sanitize/sanitize-test.d.ts +0 -2
  134. package/dist/tests/expressions/sanitize/sanitize-test.d.ts.map +0 -1
  135. package/dist/tests/expressions/sanitize/sanitize-test.js +0 -8
  136. package/dist/tests/expressions/sanitize/sanitize-test.js.map +0 -1
  137. package/dist/tests/expressions/select/select.d.ts +0 -2
  138. package/dist/tests/expressions/select/select.d.ts.map +0 -1
  139. package/dist/tests/expressions/select/select.js +0 -11
  140. package/dist/tests/expressions/select/select.js.map +0 -1
  141. package/dist/tests/expressions/self-joins/self-joins.d.ts +0 -2
  142. package/dist/tests/expressions/self-joins/self-joins.d.ts.map +0 -1
  143. package/dist/tests/expressions/self-joins/self-joins.js +0 -14
  144. package/dist/tests/expressions/self-joins/self-joins.js.map +0 -1
  145. package/dist/tests/expressions/simple/parse-array.d.ts +0 -2
  146. package/dist/tests/expressions/simple/parse-array.d.ts.map +0 -1
  147. package/dist/tests/expressions/simple/parse-array.js +0 -21
  148. package/dist/tests/expressions/simple/parse-array.js.map +0 -1
  149. package/dist/tests/expressions/simple/parse-arrow.d.ts +0 -2
  150. package/dist/tests/expressions/simple/parse-arrow.d.ts.map +0 -1
  151. package/dist/tests/expressions/simple/parse-arrow.js +0 -36
  152. package/dist/tests/expressions/simple/parse-arrow.js.map +0 -1
  153. package/dist/tests/expressions/simple/parse-complex.d.ts +0 -2
  154. package/dist/tests/expressions/simple/parse-complex.d.ts.map +0 -1
  155. package/dist/tests/expressions/simple/parse-complex.js +0 -11
  156. package/dist/tests/expressions/simple/parse-complex.js.map +0 -1
  157. package/dist/tests/expressions/trimInternal.d.ts +0 -3
  158. package/dist/tests/expressions/trimInternal.d.ts.map +0 -1
  159. package/dist/tests/expressions/trimInternal.js +0 -24
  160. package/dist/tests/expressions/trimInternal.js.map +0 -1
  161. package/dist/tests/model/ShoppingContext.d.ts +0 -140
  162. package/dist/tests/model/ShoppingContext.d.ts.map +0 -1
  163. package/dist/tests/model/ShoppingContext.js +0 -440
  164. package/dist/tests/model/ShoppingContext.js.map +0 -1
  165. package/dist/tests/model/UseFile.d.ts +0 -8
  166. package/dist/tests/model/UseFile.d.ts.map +0 -1
  167. package/dist/tests/model/UseFile.js +0 -25
  168. package/dist/tests/model/UseFile.js.map +0 -1
  169. package/dist/tests/model/createContext.d.ts +0 -6
  170. package/dist/tests/model/createContext.d.ts.map +0 -1
  171. package/dist/tests/model/createContext.js +0 -327
  172. package/dist/tests/model/createContext.js.map +0 -1
  173. package/dist/tests/pool/pool-test.d.ts +0 -2
  174. package/dist/tests/pool/pool-test.d.ts.map +0 -1
  175. package/dist/tests/pool/pool-test.js +0 -66
  176. package/dist/tests/pool/pool-test.js.map +0 -1
  177. package/dist/tests/query/combine.d.ts +0 -2
  178. package/dist/tests/query/combine.d.ts.map +0 -1
  179. package/dist/tests/query/combine.js +0 -20
  180. package/dist/tests/query/combine.js.map +0 -1
  181. package/dist/tests/security/ShoppingContextEvents.d.ts +0 -5
  182. package/dist/tests/security/ShoppingContextEvents.d.ts.map +0 -1
  183. package/dist/tests/security/ShoppingContextEvents.js +0 -20
  184. package/dist/tests/security/ShoppingContextEvents.js.map +0 -1
  185. package/dist/tests/security/events/OrderEvents.d.ts +0 -17
  186. package/dist/tests/security/events/OrderEvents.d.ts.map +0 -1
  187. package/dist/tests/security/events/OrderEvents.js +0 -62
  188. package/dist/tests/security/events/OrderEvents.js.map +0 -1
  189. package/dist/tests/security/events/ProductEvents.d.ts +0 -23
  190. package/dist/tests/security/events/ProductEvents.d.ts.map +0 -1
  191. package/dist/tests/security/events/ProductEvents.js +0 -79
  192. package/dist/tests/security/events/ProductEvents.js.map +0 -1
  193. package/dist/tests/security/events/UserEvents.d.ts +0 -10
  194. package/dist/tests/security/events/UserEvents.d.ts.map +0 -1
  195. package/dist/tests/security/events/UserEvents.js +0 -26
  196. package/dist/tests/security/events/UserEvents.js.map +0 -1
  197. package/dist/tests/security/events/UserFileEvents.d.ts +0 -7
  198. package/dist/tests/security/events/UserFileEvents.d.ts.map +0 -1
  199. package/dist/tests/security/events/UserFileEvents.js +0 -7
  200. package/dist/tests/security/events/UserFileEvents.js.map +0 -1
  201. package/dist/tests/security/events/UserInfo.d.ts +0 -5
  202. package/dist/tests/security/events/UserInfo.d.ts.map +0 -1
  203. package/dist/tests/security/events/UserInfo.js +0 -9
  204. package/dist/tests/security/events/UserInfo.js.map +0 -1
  205. package/dist/tests/security/tests/include-items.d.ts +0 -3
  206. package/dist/tests/security/tests/include-items.d.ts.map +0 -1
  207. package/dist/tests/security/tests/include-items.js +0 -15
  208. package/dist/tests/security/tests/include-items.js.map +0 -1
  209. package/dist/tests/security/tests/place-order.d.ts +0 -3
  210. package/dist/tests/security/tests/place-order.d.ts.map +0 -1
  211. package/dist/tests/security/tests/place-order.js +0 -139
  212. package/dist/tests/security/tests/place-order.js.map +0 -1
  213. package/dist/tests/security/tests/test-events.d.ts +0 -3
  214. package/dist/tests/security/tests/test-events.d.ts.map +0 -1
  215. package/dist/tests/security/tests/test-events.js +0 -54
  216. package/dist/tests/security/tests/test-events.js.map +0 -1
  217. package/src/tests/TestConfig.ts +0 -6
  218. package/src/tests/db-tests/tests/check-constraint-test.ts +0 -32
  219. package/src/tests/db-tests/tests/delete-items.ts +0 -42
  220. package/src/tests/db-tests/tests/filtered-include-items.ts +0 -28
  221. package/src/tests/db-tests/tests/insert-into.ts +0 -24
  222. package/src/tests/db-tests/tests/multi-fk-tests.ts +0 -37
  223. package/src/tests/db-tests/tests/select-identity.ts +0 -23
  224. package/src/tests/db-tests/tests/select-inverse-one-to-one.ts +0 -39
  225. package/src/tests/db-tests/tests/select-items-map.ts +0 -38
  226. package/src/tests/db-tests/tests/select-items-sum.ts +0 -60
  227. package/src/tests/db-tests/tests/select-items.ts +0 -49
  228. package/src/tests/db-tests/tests/select-map.ts +0 -19
  229. package/src/tests/db-tests/tests/select-nested.ts +0 -36
  230. package/src/tests/db-tests/tests/select-parent.ts +0 -25
  231. package/src/tests/db-tests/tests/select-related.ts +0 -35
  232. package/src/tests/db-tests/tests/update-items.ts +0 -44
  233. package/src/tests/db-tests/tests/update-select.ts +0 -28
  234. package/src/tests/db-tests/tests/upsert-test.ts +0 -48
  235. package/src/tests/db-tests/tests/version-history.ts +0 -24
  236. package/src/tests/db-tests/transaction-save-point/transaction-save-point.ts +0 -48
  237. package/src/tests/drivers/postgres/connection-test.ts +0 -39
  238. package/src/tests/drivers/sql-server/sql-server-test.ts +0 -9
  239. package/src/tests/eternity/child-tests.ts +0 -119
  240. package/src/tests/eternity/eternity-tests.ts +0 -108
  241. package/src/tests/eternity/external-event-tests.ts +0 -133
  242. package/src/tests/eternity/throttle-tests.ts +0 -100
  243. package/src/tests/expressions/left-joins/child-joins.ts +0 -131
  244. package/src/tests/expressions/sanitize/sanitize-test.ts +0 -17
  245. package/src/tests/expressions/select/select.ts +0 -21
  246. package/src/tests/expressions/self-joins/self-joins.ts +0 -23
  247. package/src/tests/expressions/simple/parse-array.ts +0 -31
  248. package/src/tests/expressions/simple/parse-arrow.ts +0 -65
  249. package/src/tests/expressions/simple/parse-complex.ts +0 -20
  250. package/src/tests/expressions/trimInternal.ts +0 -25
  251. package/src/tests/model/ShoppingContext.ts +0 -435
  252. package/src/tests/model/UseFile.ts +0 -24
  253. package/src/tests/model/createContext.ts +0 -367
  254. package/src/tests/pool/pool-test.ts +0 -79
  255. package/src/tests/query/combine.ts +0 -28
  256. package/src/tests/security/ShoppingContextEvents.ts +0 -23
  257. package/src/tests/security/events/OrderEvents.ts +0 -72
  258. package/src/tests/security/events/ProductEvents.ts +0 -102
  259. package/src/tests/security/events/UserEvents.ts +0 -28
  260. package/src/tests/security/events/UserFileEvents.ts +0 -11
  261. package/src/tests/security/events/UserInfo.ts +0 -7
  262. package/src/tests/security/tests/include-items.ts +0 -20
  263. package/src/tests/security/tests/place-order.ts +0 -138
  264. 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
- }