autosync_backend2 1.0.78 → 1.0.80

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.
package/dist/index.d.ts CHANGED
@@ -32,11 +32,77 @@ declare const app: Elysia<"", {
32
32
  }, {
33
33
  typebox: {
34
34
  Import: <Key extends never>(key: Key, options?: import("@sinclair/typebox").SchemaOptions) => import("@sinclair/typebox").TImport<{}, Key>;
35
+ readonly select: import("@sinclair/typebox").TObject<{
36
+ createdAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
37
+ createdUserId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
38
+ inventory: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
39
+ type: import("@sinclair/typebox").TOptional<import("elysia/dist/type-system/types").TUnionEnum<["Сэлбэг", "Тос", "Дугуй", "Будаг", "Аккумлятор"]>>;
40
+ search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
41
+ branchId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
42
+ sellPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
43
+ supplierId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
44
+ safetyStock: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
45
+ alias: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
46
+ shelfNumber: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
47
+ pagination: import("@sinclair/typebox").TObject<{
48
+ page: import("@sinclair/typebox").TInteger;
49
+ size: import("@sinclair/typebox").TInteger;
50
+ }>;
51
+ }>>;
52
+ pagination: import("@sinclair/typebox").TObject<{
53
+ page: import("@sinclair/typebox").TInteger;
54
+ size: import("@sinclair/typebox").TInteger;
55
+ }>;
56
+ }>;
57
+ readonly create: import("@sinclair/typebox").TObject<{
58
+ items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
59
+ quantity: import("@sinclair/typebox").TNumber;
60
+ itemId: import("@sinclair/typebox").TString;
61
+ requestId: import("@sinclair/typebox").TString;
62
+ }>>;
63
+ to: import("@sinclair/typebox").TString;
64
+ }>;
65
+ readonly approve: import("@sinclair/typebox").TObject<{
66
+ id: import("@sinclair/typebox").TString;
67
+ }>;
35
68
  };
36
69
  error: {};
37
70
  } | {
38
71
  typebox: {
39
72
  Import: <Key extends never>(key: Key, options?: import("@sinclair/typebox").SchemaOptions) => import("@sinclair/typebox").TImport<{}, Key>;
73
+ readonly select: import("@sinclair/typebox").TObject<{
74
+ createdAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
75
+ createdUserId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
76
+ inventory: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
77
+ type: import("@sinclair/typebox").TOptional<import("elysia/dist/type-system/types").TUnionEnum<["Сэлбэг", "Тос", "Дугуй", "Будаг", "Аккумлятор"]>>;
78
+ search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
79
+ branchId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
80
+ sellPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
81
+ supplierId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
82
+ safetyStock: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
83
+ alias: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
84
+ shelfNumber: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
85
+ pagination: import("@sinclair/typebox").TObject<{
86
+ page: import("@sinclair/typebox").TInteger;
87
+ size: import("@sinclair/typebox").TInteger;
88
+ }>;
89
+ }>>;
90
+ pagination: import("@sinclair/typebox").TObject<{
91
+ page: import("@sinclair/typebox").TInteger;
92
+ size: import("@sinclair/typebox").TInteger;
93
+ }>;
94
+ }>;
95
+ readonly create: import("@sinclair/typebox").TObject<{
96
+ items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
97
+ quantity: import("@sinclair/typebox").TNumber;
98
+ itemId: import("@sinclair/typebox").TString;
99
+ requestId: import("@sinclair/typebox").TString;
100
+ }>>;
101
+ to: import("@sinclair/typebox").TString;
102
+ }>;
103
+ readonly approve: import("@sinclair/typebox").TObject<{
104
+ id: import("@sinclair/typebox").TString;
105
+ }>;
40
106
  };
41
107
  error: {};
42
108
  }, {
@@ -1458,10 +1524,12 @@ declare const app: Elysia<"", {
1458
1524
  headers: unknown;
1459
1525
  response: {
1460
1526
  200: {
1461
- pageCount: number;
1462
- totalCount: number;
1527
+ pageQuantity: number;
1528
+ totalQuantity: number;
1463
1529
  pagePrice: number;
1464
1530
  totalPrice: number;
1531
+ totalCount: number;
1532
+ totalPage: number;
1465
1533
  result: {
1466
1534
  inventory: {
1467
1535
  name: string;
@@ -1807,6 +1875,133 @@ declare const app: Elysia<"", {
1807
1875
  };
1808
1876
  };
1809
1877
  };
1878
+ } & {
1879
+ inventory: {
1880
+ tranfer: {};
1881
+ } & {
1882
+ tranfer: {
1883
+ get: {
1884
+ body: unknown;
1885
+ params: {};
1886
+ query: {
1887
+ createdAt?: string | undefined;
1888
+ inventory?: {
1889
+ type?: "Сэлбэг" | "Тос" | "Дугуй" | "Будаг" | "Аккумлятор" | undefined;
1890
+ search?: string | undefined;
1891
+ branchId?: string | undefined;
1892
+ sellPrice?: number | undefined;
1893
+ supplierId?: string | undefined;
1894
+ safetyStock?: number | undefined;
1895
+ alias?: string | undefined;
1896
+ shelfNumber?: string | undefined;
1897
+ pagination: {
1898
+ size: number;
1899
+ page: number;
1900
+ };
1901
+ } | undefined;
1902
+ createdUserId?: string | undefined;
1903
+ pagination: {
1904
+ size: number;
1905
+ page: number;
1906
+ };
1907
+ };
1908
+ headers: unknown;
1909
+ response: {
1910
+ 200: {
1911
+ totalCount: number;
1912
+ totalPage: number;
1913
+ result: {
1914
+ status: "Зөвшөөрөгдсөн" | "Цуцлагдсан" | "Хүлээгдэж буй";
1915
+ createdUserId: string;
1916
+ branchId: string;
1917
+ merchantId: string;
1918
+ to: string;
1919
+ id: string;
1920
+ createdAt: string;
1921
+ updatedAt: string;
1922
+ deletedAt: string | null;
1923
+ }[];
1924
+ };
1925
+ 422: {
1926
+ type: "validation";
1927
+ on: string;
1928
+ summary?: string;
1929
+ message?: string;
1930
+ found?: unknown;
1931
+ property?: string;
1932
+ expected?: string;
1933
+ };
1934
+ };
1935
+ };
1936
+ };
1937
+ } & {
1938
+ tranfer: {
1939
+ post: {
1940
+ body: {
1941
+ items: {
1942
+ quantity: number;
1943
+ itemId: string;
1944
+ requestId: string;
1945
+ }[];
1946
+ to: string;
1947
+ };
1948
+ params: {};
1949
+ query: unknown;
1950
+ headers: unknown;
1951
+ response: {
1952
+ 200: {
1953
+ id: string;
1954
+ createdAt: string;
1955
+ updatedAt: string;
1956
+ merchantId: string;
1957
+ branchId: string;
1958
+ deletedAt: string | null;
1959
+ createdUserId: string;
1960
+ status: "Зөвшөөрөгдсөн" | "Цуцлагдсан" | "Хүлээгдэж буй";
1961
+ to: string;
1962
+ };
1963
+ 422: {
1964
+ type: "validation";
1965
+ on: string;
1966
+ summary?: string;
1967
+ message?: string;
1968
+ found?: unknown;
1969
+ property?: string;
1970
+ expected?: string;
1971
+ };
1972
+ };
1973
+ };
1974
+ };
1975
+ } & {
1976
+ tranfer: {
1977
+ ":id": {
1978
+ approve: {
1979
+ post: {
1980
+ body: unknown;
1981
+ params: {
1982
+ id: string;
1983
+ };
1984
+ query: unknown;
1985
+ headers: unknown;
1986
+ response: {
1987
+ 200: undefined;
1988
+ 404: "Хүсэлт олдсонгүй.";
1989
+ 400: "Хүсэлт аль хэдийн зөвшөөрөгдсөн байна." | "Хүсэлт цуцлагдсан байна.";
1990
+ 422: {
1991
+ type: "validation";
1992
+ on: string;
1993
+ summary?: string;
1994
+ message?: string;
1995
+ found?: unknown;
1996
+ property?: string;
1997
+ expected?: string;
1998
+ };
1999
+ };
2000
+ };
2001
+ };
2002
+ };
2003
+ };
2004
+ };
1810
2005
  };
1811
2006
  } & {
1812
2007
  api: {
package/dist/index.js CHANGED
@@ -15775,6 +15775,7 @@ __export(exports_schema, {
15775
15775
  verification: () => verification,
15776
15776
  userRoleEnum: () => userRoleEnum,
15777
15777
  user: () => user,
15778
+ statusEnum: () => statusEnum,
15778
15779
  session: () => session,
15779
15780
  permissionTable: () => permissionTable,
15780
15781
  permissionGroupTable: () => permissionGroupTable,
@@ -15782,6 +15783,10 @@ __export(exports_schema, {
15782
15783
  merchantTable: () => merchantTable,
15783
15784
  merchantSchema: () => merchantSchema,
15784
15785
  logTable: () => logTable,
15786
+ inventoryTransferRequestTable: () => inventoryTransferRequestTable,
15787
+ inventoryTransferRequestRelations: () => inventoryTransferRequestRelations,
15788
+ inventoryTransferRequestItemTable: () => inventoryTransferRequestItemTable,
15789
+ inventoryTransferRequestItemRelations: () => inventoryTransferRequestItemRelations,
15785
15790
  inventorySupplierTable: () => inventorySupplierTable,
15786
15791
  inventorySchema: () => inventorySchema,
15787
15792
  inventoryRefundTable: () => inventoryRefundTable,
@@ -18802,6 +18807,12 @@ function extractTablesRelationalConfig(schema, configHelpers) {
18802
18807
  }
18803
18808
  return { tables: tablesConfig, tableNamesMap };
18804
18809
  }
18810
+ function relations(table, relations2) {
18811
+ return new Relations(table, (helpers) => Object.fromEntries(Object.entries(relations2(helpers)).map(([key, value]) => [
18812
+ key,
18813
+ value.withFieldName(key)
18814
+ ])));
18815
+ }
18805
18816
  function createOne(sourceTable) {
18806
18817
  return function one(table, config) {
18807
18818
  return new One(sourceTable, table, config, config?.fields.reduce((res, f) => res && f.notNull, true) ?? false);
@@ -21015,14 +21026,46 @@ var inventoryRefundTable = inventorySchema.table("refund", {
21015
21026
  merchantId: uuid().notNull(),
21016
21027
  branchId: uuid().notNull(),
21017
21028
  isApproved: boolean().default(false),
21018
- userId: uuid().notNull(),
21019
- approvedUserId: uuid()
21029
+ userId: text().notNull(),
21030
+ approvedUserId: text()
21020
21031
  });
21021
21032
  var inventorySupplierTable = inventorySchema.table("supplier", {
21022
21033
  ...base_schema_helper_default,
21023
21034
  name: varchar().notNull(),
21024
21035
  image: varchar()
21025
21036
  });
21037
+ var statusEnum = inventorySchema.enum("status", [
21038
+ "\u0417\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0433\u0434\u0441\u04E9\u043D",
21039
+ "\u0426\u0443\u0446\u043B\u0430\u0433\u0434\u0441\u0430\u043D",
21040
+ "\u0425\u04AF\u043B\u044D\u044D\u0433\u0434\u044D\u0436 \u0431\u0443\u0439"
21041
+ ]);
21042
+ var inventoryTransferRequestTable = inventorySchema.table("transfer_request", {
21043
+ ...base_schema_helper_default,
21044
+ status: statusEnum().notNull().default("\u0425\u04AF\u043B\u044D\u044D\u0433\u0434\u044D\u0436 \u0431\u0443\u0439"),
21045
+ createdUserId: text().notNull(),
21046
+ branchId: uuid().notNull(),
21047
+ merchantId: uuid().notNull(),
21048
+ to: uuid().notNull()
21049
+ });
21050
+ var inventoryTransferRequestRelations = relations(inventoryTransferRequestTable, ({ many }) => ({
21051
+ items: many(inventoryTransferRequestItemTable)
21052
+ }));
21053
+ var inventoryTransferRequestItemTable = inventorySchema.table("transfer_request_item", {
21054
+ ...base_schema_helper_default,
21055
+ itemId: uuid().notNull(),
21056
+ quantity: numeric({ mode: "number" }).notNull(),
21057
+ requestId: uuid().notNull()
21058
+ });
21059
+ var inventoryTransferRequestItemRelations = relations(inventoryTransferRequestItemTable, ({ one }) => ({
21060
+ request: one(inventoryTransferRequestTable, {
21061
+ fields: [inventoryTransferRequestItemTable.requestId],
21062
+ references: [inventoryTransferRequestTable.id]
21063
+ }),
21064
+ item: one(inventoryItemTable, {
21065
+ fields: [inventoryTransferRequestItemTable.itemId],
21066
+ references: [inventoryItemTable.id]
21067
+ })
21068
+ }));
21026
21069
  // src/lib/db/schema/common.schema.ts
21027
21070
  var logTable = pgTable("log", {
21028
21071
  ...base_schema_helper_default,
@@ -73212,6 +73255,10 @@ var inventoryTags = [
73212
73255
  {
73213
73256
  name: "InventorySupplier",
73214
73257
  description: "\u0410\u0433\u0443\u0443\u043B\u0430\u0445\u044B\u043D \u043D\u0438\u0439\u043B\u04AF\u04AF\u043B\u044D\u0433\u0447"
73258
+ },
73259
+ {
73260
+ name: "InventoryTransfer",
73261
+ description: "\u0410\u0433\u0443\u0443\u043B\u0430\u0445\u044B\u043D \u0448\u0438\u043B\u0436\u04AF\u04AF\u043B\u044D\u0433"
73215
73262
  }
73216
73263
  ];
73217
73264
  var merchantTags = [
@@ -73426,6 +73473,7 @@ var permission_default = permissionMacro;
73426
73473
  function withPagination(qb, { size, page }) {
73427
73474
  return qb.limit(size).offset((page - 1) * size);
73428
73475
  }
73476
+ var totalCountSql = sql`count(*) over()`.mapWith(Number);
73429
73477
  var pagination_helper_default = withPagination;
73430
73478
 
73431
73479
  // src/lib/db/helpers/soft-delete.helper.ts
@@ -95953,20 +96001,30 @@ var InventoryLogLogic;
95953
96001
  const base = db_default.select({
95954
96002
  ...columns,
95955
96003
  inventory: inventoryItemTable,
95956
- pageCount: sql`COALESCE(sum(${inventoryLogTable.quantity}), 0)`.mapWith(Number),
95957
- totalCount: sql`COALESCE(sum(${inventoryLogTable.quantity}) over(), 0)`.mapWith(Number),
96004
+ pageQuantity: sql`COALESCE(sum(${inventoryLogTable.quantity}), 0)`.mapWith(Number),
96005
+ totalQuantity: sql`COALESCE(sum(${inventoryLogTable.quantity}) over(), 0)`.mapWith(Number),
95958
96006
  pagePrice: sql`sum(${inventoryLogTable.sellPrice} * ${inventoryLogTable.quantity})`.mapWith(Number),
95959
- totalPrice: sql`sum(${inventoryLogTable.sellPrice} * ${inventoryLogTable.quantity}) over()`.mapWith(Number)
95960
- }).from(inventoryLogTable).innerJoin(inventoryItemTable, eq(inventoryLogTable.itemId, inventoryItemTable.id)).where(filter).groupBy(inventoryLogTable.id).$dynamic();
96007
+ totalPrice: sql`sum(${inventoryLogTable.sellPrice} * ${inventoryLogTable.quantity}) over()`.mapWith(Number),
96008
+ totalCount: totalCountSql
96009
+ }).from(inventoryLogTable).innerJoin(inventoryItemTable, eq(inventoryLogTable.itemId, inventoryItemTable.id)).where(filter).groupBy(inventoryLogTable.id, inventoryItemTable.id).$dynamic();
95961
96010
  const inventoryLogs = await pagination_helper_default(base, query.pagination);
95962
96011
  const content = {
95963
- pageCount: inventoryLogs[0]?.pageCount ?? 0,
95964
- totalCount: inventoryLogs[0]?.totalCount ?? 0,
96012
+ pageQuantity: inventoryLogs[0]?.pageQuantity ?? 0,
96013
+ totalQuantity: inventoryLogs[0]?.totalQuantity ?? 0,
95965
96014
  pagePrice: inventoryLogs[0]?.pagePrice ?? 0,
95966
- totalPrice: inventoryLogs[0]?.totalPrice ?? 0
96015
+ totalPrice: inventoryLogs[0]?.totalPrice ?? 0,
96016
+ totalCount: inventoryLogs[0]?.totalCount ?? 0,
96017
+ totalPage: inventoryLogs.length === 0 ? 0 : Math.ceil(inventoryLogs[0].totalCount / query.pagination.size)
95967
96018
  };
95968
96019
  return {
95969
- result: inventoryLogs.map(({ pageCount, totalCount, pagePrice, totalPrice, ...item }) => item),
96020
+ result: inventoryLogs.map(({
96021
+ pageQuantity,
96022
+ totalQuantity,
96023
+ pagePrice,
96024
+ totalPrice,
96025
+ totalCount,
96026
+ ...item
96027
+ }) => item),
95970
96028
  ...content
95971
96029
  };
95972
96030
  };
@@ -96329,7 +96387,7 @@ var InventoryItemLogic;
96329
96387
  totalQuantity: sql`COALESCE(sum(${inventoryItemTable.quantity}) over(), 0)`.mapWith(Number),
96330
96388
  pagePrice: sql`sum(${inventoryItemTable.sellPrice} * ${inventoryItemTable.quantity})`.mapWith(Number),
96331
96389
  totalPrice: sql`sum(${inventoryItemTable.sellPrice} * ${inventoryItemTable.quantity}) over()`.mapWith(Number),
96332
- totalCount: sql`count(*) over()`.mapWith(Number)
96390
+ totalCount: totalCountSql
96333
96391
  }).from(inventoryItemTable).where(InventoryItemLogic.getInventoryItemFilter(query, user2)).groupBy(inventoryItemTable.id).$dynamic();
96334
96392
  const inventoryItems = await pagination_helper_default(base, query.pagination);
96335
96393
  const content = {
@@ -96352,8 +96410,8 @@ var InventoryItemLogic;
96352
96410
  ...content
96353
96411
  };
96354
96412
  };
96355
- InventoryItemLogic.create = async (body, user2) => {
96356
- return await db_default.transaction(async (db2) => {
96413
+ InventoryItemLogic.create = async (body, user2, desc2, tdb = db_default) => {
96414
+ return await tdb.transaction(async (db2) => {
96357
96415
  const [inventoryItem] = await db2.insert(inventoryItemTable).values({
96358
96416
  ...body,
96359
96417
  branchId: body.branchId ?? user2.branchId,
@@ -96363,7 +96421,7 @@ var InventoryItemLogic;
96363
96421
  await logic_default2.create({
96364
96422
  itemId: inventoryItem.id,
96365
96423
  quantity: body.quantity,
96366
- description: "\u0413\u0430\u0440\u0430\u0430\u0440 \u0431\u0430\u0440\u0430\u0430 \u043D\u044D\u043C\u0441\u044D\u043D.",
96424
+ description: desc2 ?? "\u0413\u0430\u0440\u0430\u0430\u0440 \u0431\u0430\u0440\u0430\u0430 \u043D\u044D\u043C\u0441\u044D\u043D.",
96367
96425
  userId: user2.id
96368
96426
  }, db2);
96369
96427
  }
@@ -96513,7 +96571,7 @@ var InventoryRefundLogic;
96513
96571
  const baseQuery = db_default.select({
96514
96572
  ...columns,
96515
96573
  inventory: inventoryItemTable,
96516
- totalCount: sql`count(*) over()`.mapWith(Number)
96574
+ totalCount: totalCountSql
96517
96575
  }).from(inventoryRefundTable).where(filter).innerJoin(inventoryItemTable, eq(inventoryRefundTable.itemId, inventoryItemTable.id)).$dynamic();
96518
96576
  const refunds = await pagination_helper_default(baseQuery, query.pagination);
96519
96577
  const content = {
@@ -96535,20 +96593,20 @@ var InventoryRefundLogic;
96535
96593
  return refund;
96536
96594
  };
96537
96595
  InventoryRefundLogic.approve = async (id, user2) => {
96538
- const currentRefund = await db_default.select({
96596
+ const [currentRefund] = await db_default.select({
96539
96597
  isApproved: inventoryRefundTable.isApproved
96540
96598
  }).from(inventoryRefundTable).where(and(eq(inventoryRefundTable.id, id), eq(inventoryRefundTable.merchantId, user2.merchantId)));
96541
- if (currentRefund.length === 0) {
96599
+ if (!currentRefund) {
96542
96600
  return status("Not Found", "\u0411\u0443\u0446\u0430\u0430\u043B\u0442 \u043E\u043B\u0434\u0441\u043E\u043D\u0433\u04AF\u0439.");
96543
96601
  }
96544
- if (currentRefund[0].isApproved) {
96602
+ if (currentRefund.isApproved) {
96545
96603
  return status("Bad Request", "\u0411\u0443\u0446\u0430\u0430\u043B\u0442 \u0437\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0433\u0434\u0441\u04E9\u043D \u0431\u0430\u0439\u043D\u0430.");
96546
96604
  }
96547
- return await db_default.transaction(async (db2) => {
96605
+ return db_default.transaction(async (db2) => {
96548
96606
  const [refund] = await db2.update(inventoryRefundTable).set({
96549
96607
  isApproved: true,
96550
96608
  approvedUserId: user2.id
96551
- }).returning();
96609
+ }).where(eq(inventoryRefundTable.id, id)).returning();
96552
96610
  await logic_default.handleQuantityChange({
96553
96611
  id: refund.itemId,
96554
96612
  quantity: refund.quantity,
@@ -96612,7 +96670,7 @@ var InventorySupplierLogic;
96612
96670
  const columns = getTableColumns(inventorySupplierTable);
96613
96671
  const baseQuery = db_default.select({
96614
96672
  ...columns,
96615
- totalCount: sql`count(*) over()`.mapWith(Number)
96673
+ totalCount: totalCountSql
96616
96674
  }).from(inventorySupplierTable).where(softDeletedFilter(inventorySupplierTable)).$dynamic();
96617
96675
  const suppliers = await pagination_helper_default(baseQuery, query.pagination);
96618
96676
  const content = {
@@ -96668,10 +96726,129 @@ var supplierRoutes = new Elysia({
96668
96726
  }).delete("/:id", async ({ params: { id } }) => await logic_default4.remove(id));
96669
96727
  var supplier_default = supplierRoutes;
96670
96728
 
96729
+ // src/routes/inventory/transfer/logic.ts
96730
+ var InventoryTransferLogic;
96731
+ ((InventoryTransferLogic) => {
96732
+ InventoryTransferLogic.select = async (query, user2) => {
96733
+ const filter = and(logic_default.getInventoryItemFilter(query.inventory ?? {}, user2), eq(inventoryTransferRequestTable.createdUserId, query.createdUserId ?? "").if(query.createdUserId), eq(inventoryTransferRequestTable.createdAt, query.createdAt ?? ""));
96734
+ const columns = getTableColumns(inventoryTransferRequestTable);
96735
+ const baseQuery = db_default.select({
96736
+ ...columns,
96737
+ totalCount: totalCountSql
96738
+ }).from(inventoryTransferRequestTable).leftJoin(inventoryTransferRequestItemTable, eq(inventoryTransferRequestTable.id, inventoryTransferRequestItemTable.requestId)).leftJoin(inventoryItemTable, eq(inventoryTransferRequestItemTable.itemId, inventoryItemTable.id)).where(filter).$dynamic();
96739
+ const result = await pagination_helper_default(baseQuery, query.pagination);
96740
+ const content = {
96741
+ totalCount: result[0]?.totalCount ?? 0,
96742
+ totalPage: result.length === 0 ? 0 : Math.ceil(result[0].totalCount / query.pagination.size)
96743
+ };
96744
+ return {
96745
+ result: result.map(({ totalCount, ...item }) => item),
96746
+ ...content
96747
+ };
96748
+ };
96749
+ InventoryTransferLogic.create = async (body, user2) => {
96750
+ return await db_default.transaction(async (db2) => {
96751
+ const [request] = await db2.insert(inventoryTransferRequestTable).values({
96752
+ createdUserId: user2.id,
96753
+ merchantId: user2.merchantId,
96754
+ branchId: user2.branchId,
96755
+ to: body.to
96756
+ }).returning();
96757
+ await db2.insert(inventoryTransferRequestItemTable).values(body.items);
96758
+ return request;
96759
+ });
96760
+ };
96761
+ InventoryTransferLogic.approve = async (params, user2) => {
96762
+ const request = await db_default.query.inventoryTransferRequestTable.findFirst({
96763
+ where: eq(inventoryTransferRequestTable.id, params.id),
96764
+ with: {
96765
+ items: {
96766
+ with: {
96767
+ item: true
96768
+ }
96769
+ }
96770
+ }
96771
+ });
96772
+ if (!request) {
96773
+ return status("Not Found", "\u0425\u04AF\u0441\u044D\u043B\u0442 \u043E\u043B\u0434\u0441\u043E\u043D\u0433\u04AF\u0439.");
96774
+ }
96775
+ if (request.status === "\u0417\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0433\u0434\u0441\u04E9\u043D") {
96776
+ return status("Bad Request", "\u0425\u04AF\u0441\u044D\u043B\u0442 \u0430\u043B\u044C \u0445\u044D\u0434\u0438\u0439\u043D \u0437\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0433\u0434\u0441\u04E9\u043D \u0431\u0430\u0439\u043D\u0430.");
96777
+ }
96778
+ if (request.status === "\u0426\u0443\u0446\u043B\u0430\u0433\u0434\u0441\u0430\u043D") {
96779
+ return status("Bad Request", "\u0425\u04AF\u0441\u044D\u043B\u0442 \u0446\u0443\u0446\u043B\u0430\u0433\u0434\u0441\u0430\u043D \u0431\u0430\u0439\u043D\u0430.");
96780
+ }
96781
+ const currentInventories = await db_default.query.inventoryItemTable.findMany({
96782
+ where: (table) => inArray(table.partNumber, request.items.map((item) => item.item.partNumber)),
96783
+ columns: { id: true, partNumber: true }
96784
+ });
96785
+ const inventoryMap = new Map(currentInventories.map((item) => [item.partNumber, item]));
96786
+ await db_default.transaction(async (db2) => {
96787
+ for (const item of request.items) {
96788
+ const currentInventory = inventoryMap.get(item.item.partNumber);
96789
+ if (currentInventory) {
96790
+ await logic_default.handleQuantityChange({
96791
+ id: currentInventory.id,
96792
+ quantity: item.quantity,
96793
+ description: "\u0410\u0433\u0443\u0443\u043B\u0430\u0445\u044B\u043D \u0448\u0438\u043B\u0436\u04AF\u04AF\u043B\u044D\u0433"
96794
+ }, user2, db2);
96795
+ } else {
96796
+ const { id, createdAt, updatedAt, deletedAt, ...body } = item.item;
96797
+ try {
96798
+ await logic_default.create({
96799
+ ...body,
96800
+ quantity: item.quantity
96801
+ }, user2, "\u0410\u0433\u0443\u0443\u043B\u0430\u0445\u044B\u043D \u0448\u0438\u043B\u0436\u04AF\u04AF\u043B\u044D\u0433", db2);
96802
+ } catch (err2) {
96803
+ throw err2;
96804
+ }
96805
+ }
96806
+ }
96807
+ });
96808
+ };
96809
+ })(InventoryTransferLogic ||= {});
96810
+ var logic_default5 = InventoryTransferLogic;
96811
+
96812
+ // src/routes/inventory/transfer/model.ts
96813
+ var InventoryTransferModel;
96814
+ ((InventoryTransferModel) => {
96815
+ const createItem = createInsertSchema(inventoryTransferRequestItemTable);
96816
+ InventoryTransferModel.select = t.Composite([
96817
+ t.Partial(t.Object({
96818
+ inventory: selectInventoryItemSchema,
96819
+ createdUserId: t.String(),
96820
+ createdAt: t.String({ format: "date" })
96821
+ })),
96822
+ PaginationSchema
96823
+ ]);
96824
+ InventoryTransferModel.create = t.Object({
96825
+ items: t.Array(OmitBaseSchema(createItem)),
96826
+ to: t.String({ format: "uuid" })
96827
+ });
96828
+ InventoryTransferModel.approve = IdSchema;
96829
+ })(InventoryTransferModel ||= {});
96830
+ var model_default = InventoryTransferModel;
96831
+
96832
+ // src/routes/inventory/transfer/index.ts
96833
+ var transferRoutes = new Elysia({
96834
+ prefix: "/tranfer",
96835
+ tags: ["InventoryTransfer"]
96836
+ }).use(better_auth_default).guard({ auth: true }).model(model_default).get("/", async ({ query, user: user2 }) => logic_default5.select(query, user2), {
96837
+ query: "select"
96838
+ }).post("/", async ({ body, user: user2 }) => logic_default5.create(body, user2), {
96839
+ body: "create"
96840
+ }).post("/:id/approve", async ({ params, user: user2 }) => logic_default5.approve(params, user2), {
96841
+ params: "approve",
96842
+ detail: {
96843
+ summary: "\u0428\u0438\u043B\u0436\u04AF\u04AF\u043B\u044D\u0433 \u0437\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0445"
96844
+ }
96845
+ });
96846
+ var transfer_default = transferRoutes;
96847
+
96671
96848
  // src/routes/inventory/index.ts
96672
96849
  var inventorySchemaRoutes = new Elysia({
96673
96850
  prefix: "/inventory"
96674
- }).use(item_default).use(log_default).use(supplier_default).use(refund_default);
96851
+ }).use(item_default).use(log_default).use(supplier_default).use(refund_default).use(transfer_default);
96675
96852
  var inventory_default = inventorySchemaRoutes;
96676
96853
 
96677
96854
  // src/lib/db/helpers/crud.helper.ts
@@ -96684,7 +96861,6 @@ class CrudHelper {
96684
96861
  }
96685
96862
  async get(input, filter) {
96686
96863
  const wheres = [softDeletedFilter(this.table)];
96687
- console.log(input);
96688
96864
  if (!filter) {
96689
96865
  const tableKeys = Object.keys(this.table);
96690
96866
  for (const key of Object.keys(input)) {
@@ -96706,7 +96882,7 @@ class CrudHelper {
96706
96882
  const columns = getTableColumns(this.table);
96707
96883
  const baseQuery = db_default.select({
96708
96884
  ...columns,
96709
- totalCount: sql`count(*) over()`.mapWith(Number)
96885
+ totalCount: totalCountSql
96710
96886
  }).from(this.table).where(filter ?? and(...wheres)).$dynamic();
96711
96887
  const result = await pagination_helper_default(baseQuery, input.pagination);
96712
96888
  const content = {
@@ -96756,7 +96932,7 @@ var MerchantBranchLogic;
96756
96932
  return branch;
96757
96933
  };
96758
96934
  })(MerchantBranchLogic ||= {});
96759
- var logic_default5 = MerchantBranchLogic;
96935
+ var logic_default6 = MerchantBranchLogic;
96760
96936
 
96761
96937
  // src/routes/merchant/branch/schema.ts
96762
96938
  var create5 = createInsertSchema(branchTable, {
@@ -96783,7 +96959,7 @@ var branchRoutes = new Elysia({
96783
96959
  }).get("/", async ({ query }) => await service.get(query), {
96784
96960
  query: selectBranchSchema,
96785
96961
  permission: ["MERCHANT_BRANCH_SELECT_OWN", "MERCHANT_BRANCH_SELECT_ADMIN"]
96786
- }).post("/", async ({ body, user: user2, permissions }) => await logic_default5.create(body, user2, permissions), {
96962
+ }).post("/", async ({ body, user: user2, permissions }) => await logic_default6.create(body, user2, permissions), {
96787
96963
  body: createBranchSchema,
96788
96964
  permission: "MERCHANT_BRANCH_CREATE"
96789
96965
  }).guard({
@@ -97067,7 +97243,7 @@ var PermissionLogic;
97067
97243
  const columns = getTableColumns(permissionGroupTable);
97068
97244
  const baseQuery = db_default.select({
97069
97245
  ...columns,
97070
- totalCount: sql`count(*) over()`.mapWith(Number)
97246
+ totalCount: totalCountSql
97071
97247
  }).from(permissionGroupTable).where(softDeletedFilter(permissionGroupTable)).$dynamic();
97072
97248
  const permissionGroups = await pagination_helper_default(baseQuery, query.pagination);
97073
97249
  const content = {
@@ -97092,7 +97268,7 @@ var PermissionLogic;
97092
97268
  return permissions;
97093
97269
  };
97094
97270
  })(PermissionLogic ||= {});
97095
- var logic_default6 = PermissionLogic;
97271
+ var logic_default7 = PermissionLogic;
97096
97272
 
97097
97273
  // src/routes/permission/schema.ts
97098
97274
  var addPermissionSchema = t.Object({
@@ -97119,7 +97295,7 @@ var permissionRoutes = new Elysia({
97119
97295
  return permissionList;
97120
97296
  }, {
97121
97297
  permission: "PERMISSION_ADD"
97122
- }).post("/", ({ body }) => logic_default6.addPermission(body), {
97298
+ }).post("/", ({ body }) => logic_default7.addPermission(body), {
97123
97299
  body: addPermissionSchema,
97124
97300
  permission: "PERMISSION_ADD",
97125
97301
  beforeHandle({ status: status2, body, permissions, publicPermissions }) {
@@ -97131,7 +97307,7 @@ var permissionRoutes = new Elysia({
97131
97307
  }
97132
97308
  }).group("/group", (app) => app.guard({
97133
97309
  permission: "PERMISSION_GROUP_ALL"
97134
- }).get("/", async ({ query }) => await logic_default6.selectGroups(query), {
97310
+ }).get("/", async ({ query }) => await logic_default7.selectGroups(query), {
97135
97311
  query: selectPermissionGroupSchema
97136
97312
  }).post("/", async ({ body }) => await groupService.create(body), {
97137
97313
  body: createPermissionGroupSchema
@@ -97266,10 +97442,10 @@ var UserLogic;
97266
97442
  const columns = getTableColumns(user);
97267
97443
  const baseQuery = db_default.select({
97268
97444
  ...columns,
97269
- totalCount: sql`count(*) over()`.mapWith(Number)
97445
+ totalCount: totalCountSql
97270
97446
  }).from(user).where(filter).$dynamic();
97271
97447
  const users = await pagination_helper_default(baseQuery, query.pagination);
97272
- const userPermissions2 = await logic_default6.selectByUserId(users.map((u) => u.id));
97448
+ const userPermissions2 = await logic_default7.selectByUserId(users.map((u) => u.id));
97273
97449
  const content = {
97274
97450
  totalCount: users[0]?.totalCount ?? 0,
97275
97451
  totalPage: users.length === 0 ? 0 : Math.ceil(users[0].totalCount / query.pagination.size)
@@ -97313,7 +97489,7 @@ var UserLogic;
97313
97489
  }
97314
97490
  });
97315
97491
  try {
97316
- await logic_default6.addPermission({
97492
+ await logic_default7.addPermission({
97317
97493
  permissions: body.permissions,
97318
97494
  userId: result.user.id
97319
97495
  });
@@ -97328,7 +97504,7 @@ var UserLogic;
97328
97504
  if (!updatedUser) {
97329
97505
  return status("Not Found", "\u0425\u044D\u0440\u044D\u0433\u043B\u044D\u0433\u0447 \u043E\u043B\u0434\u0441\u043E\u043D\u0433\u04AF\u0439.");
97330
97506
  }
97331
- await logic_default6.addPermission({
97507
+ await logic_default7.addPermission({
97332
97508
  permissions: body.permissions,
97333
97509
  userId: updatedUser.id
97334
97510
  }, db2);
@@ -97336,7 +97512,7 @@ var UserLogic;
97336
97512
  });
97337
97513
  };
97338
97514
  })(UserLogic ||= {});
97339
- var logic_default7 = UserLogic;
97515
+ var logic_default8 = UserLogic;
97340
97516
 
97341
97517
  // src/routes/user/schema.ts
97342
97518
  var select4 = createSelectSchema(user);
@@ -97368,17 +97544,17 @@ var userRoutes = new Elysia({
97368
97544
  }).use(better_auth_default).use(permission_default).guard({
97369
97545
  auth: true,
97370
97546
  tags: ["User"]
97371
- }).get("/", async ({ query, user: user2, permissions }) => logic_default7.select(query, user2, permissions), {
97547
+ }).get("/", async ({ query, user: user2, permissions }) => logic_default8.select(query, user2, permissions), {
97372
97548
  query: selectUserSchema,
97373
97549
  permission: [
97374
97550
  "USER_SELECT_BACKOFFICE",
97375
97551
  "USER_SELECT_ADMIN",
97376
97552
  "USER_SELECT_OWN"
97377
97553
  ]
97378
- }).post("/", async ({ body, user: user2, permissions }) => logic_default7.registerUser(body, user2, permissions), {
97554
+ }).post("/", async ({ body, user: user2, permissions }) => logic_default8.registerUser(body, user2, permissions), {
97379
97555
  body: createUserSchema,
97380
97556
  permission: ["USER_CREATE_ADMIN", "USER_CREATE_OWN"]
97381
- }).put("/:id", async ({ body, user: user2, permissions, params: { id } }) => logic_default7.update(id, body, user2, permissions), {
97557
+ }).put("/:id", async ({ body, user: user2, permissions, params: { id } }) => logic_default8.update(id, body, user2, permissions), {
97382
97558
  body: updateUserSchema,
97383
97559
  permission: ["USER_CREATE_ADMIN", "USER_CREATE_OWN"]
97384
97560
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autosync_backend2",
3
- "version": "1.0.78",
3
+ "version": "1.0.80",
4
4
  "module": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",