@lodashventure/medusa-booking-for-pickup 1.5.8 → 1.5.10
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/.medusa/server/src/modules/pickup-datetime/migrations/Migration20250426021722.js +18 -0
- package/.medusa/server/src/modules/pickup-datetime/migrations/Migration20250427042133.js +15 -0
- package/.medusa/server/src/modules/pickup-datetime/migrations/Migration20250428021350.js +14 -0
- package/.medusa/server/src/modules/pickup-datetime/migrations/Migration20250503003504.js +28 -0
- package/.medusa/server/src/modules/pickup-datetime/migrations/Migration20250515000000.js +186 -0
- package/.medusa/server/src/modules/pickup-datetime/migrations/Migration20250519010100.js +64 -0
- package/.medusa/server/src/workflows/pickup-availablity/steps/validateOverlapsPickupStep.js +13 -18
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250426021722 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20250426021722 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "cart_pickup_date" ("id" text not null, "cart_id" text not null, "pickup_datetime" timestamptz not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "cart_pickup_date_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_cart_pickup_date_deleted_at" ON "cart_pickup_date" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
9
|
+
this.addSql(`create table if not exists "order_pickup_date" ("id" text not null, "order_id" text not null, "pickup_datetime" timestamptz not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "order_pickup_date_pkey" primary key ("id"));`);
|
|
10
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_order_pickup_date_deleted_at" ON "order_pickup_date" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
11
|
+
}
|
|
12
|
+
async down() {
|
|
13
|
+
this.addSql(`drop table if exists "cart_pickup_date" cascade;`);
|
|
14
|
+
this.addSql(`drop table if exists "order_pickup_date" cascade;`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.Migration20250426021722 = Migration20250426021722;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MjYwMjE3MjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9waWNrdXAtZGF0ZXRpbWUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDQyNjAyMTcyMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsOFRBQThULENBQUMsQ0FBQztRQUM1VSxJQUFJLENBQUMsTUFBTSxDQUFDLDJIQUEySCxDQUFDLENBQUM7UUFFekksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpVUFBaVUsQ0FBQyxDQUFDO1FBQy9VLElBQUksQ0FBQyxNQUFNLENBQUMsNkhBQTZILENBQUMsQ0FBQztJQUM3SSxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxNQUFNLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBRUY7QUFoQkQsMERBZ0JDIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250427042133 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20250427042133 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "pickup_availability" ("id" text not null, "shipping_option_id" text not null, "day_of_week" text not null, "timeStart" timestamptz not null, "timeEnd" timestamptz not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "pickup_availability_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_pickup_availability_deleted_at" ON "pickup_availability" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
9
|
+
}
|
|
10
|
+
async down() {
|
|
11
|
+
this.addSql(`drop table if exists "pickup_availability" cascade;`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.Migration20250427042133 = Migration20250427042133;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MjcwNDIxMzMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9waWNrdXAtZGF0ZXRpbWUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDQyNzA0MjEzMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsc1lBQXNZLENBQUMsQ0FBQztRQUNwWixJQUFJLENBQUMsTUFBTSxDQUFDLGlJQUFpSSxDQUFDLENBQUM7SUFDakosQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBRUY7QUFYRCwwREFXQyJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250428021350 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20250428021350 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "pickup_availability" add column if not exists "enable" boolean not null default true;`);
|
|
8
|
+
}
|
|
9
|
+
async down() {
|
|
10
|
+
this.addSql(`alter table if exists "pickup_availability" drop column if exists "enable";`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.Migration20250428021350 = Migration20250428021350;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MjgwMjEzNTAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9waWNrdXAtZGF0ZXRpbWUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDQyODAyMTM1MC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsOEdBQThHLENBQUMsQ0FBQztJQUM5SCxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250503003504 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20250503003504 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "pickup_date" drop constraint if exists "pickup_date_order_id_unique";`);
|
|
8
|
+
this.addSql(`alter table if exists "pickup_date" drop constraint if exists "pickup_date_cart_id_unique";`);
|
|
9
|
+
this.addSql(`create table if not exists "pickup_date" ("id" text not null, "cart_id" text null, "order_id" text null, "pickup_datetime" timestamptz not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "pickup_date_pkey" primary key ("id"));`);
|
|
10
|
+
this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_pickup_date_cart_id_unique" ON "pickup_date" (cart_id) WHERE deleted_at IS NULL;`);
|
|
11
|
+
this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_pickup_date_order_id_unique" ON "pickup_date" (order_id) WHERE deleted_at IS NULL;`);
|
|
12
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_pickup_date_deleted_at" ON "pickup_date" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
13
|
+
this.addSql(`drop table if exists "cart_pickup_date" cascade;`);
|
|
14
|
+
this.addSql(`drop table if exists "order_pickup_date" cascade;`);
|
|
15
|
+
this.addSql(`drop table if exists "cart_cart_pickup_datetime_pickup_date" cascade;`);
|
|
16
|
+
this.addSql(`drop table if exists "order_order_pickup_datetime_pickup_date" cascade;`);
|
|
17
|
+
this.addSql(`drop table if exists "fulf_ship_opti_pick_date_pick_avai-3dc612764" cascade;`);
|
|
18
|
+
}
|
|
19
|
+
async down() {
|
|
20
|
+
this.addSql(`create table if not exists "cart_pickup_date" ("id" text not null, "cart_id" text not null, "pickup_datetime" timestamptz not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "cart_pickup_date_pkey" primary key ("id"));`);
|
|
21
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_cart_pickup_date_deleted_at" ON "cart_pickup_date" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
22
|
+
this.addSql(`create table if not exists "order_pickup_date" ("id" text not null, "order_id" text not null, "pickup_datetime" timestamptz not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "order_pickup_date_pkey" primary key ("id"));`);
|
|
23
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_order_pickup_date_deleted_at" ON "order_pickup_date" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
24
|
+
this.addSql(`drop table if exists "pickup_date" cascade;`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.Migration20250503003504 = Migration20250503003504;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA1MDMwMDM1MDQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9waWNrdXAtZGF0ZXRpbWUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDUwMzAwMzUwNC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUM1RyxJQUFJLENBQUMsTUFBTSxDQUFDLDZGQUE2RixDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLE1BQU0sQ0FBQyxzVUFBc1UsQ0FBQyxDQUFDO1FBQ3BWLElBQUksQ0FBQyxNQUFNLENBQUMseUhBQXlILENBQUMsQ0FBQztRQUN2SSxJQUFJLENBQUMsTUFBTSxDQUFDLDJIQUEySCxDQUFDLENBQUM7UUFDekksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpSEFBaUgsQ0FBQyxDQUFDO1FBRS9ILElBQUksQ0FBQyxNQUFNLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsTUFBTSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO1FBRXJGLElBQUksQ0FBQyxNQUFNLENBQUMseUVBQXlFLENBQUMsQ0FBQztRQUV2RixJQUFJLENBQUMsTUFBTSxDQUFDLDhFQUE4RSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsOFRBQThULENBQUMsQ0FBQztRQUM1VSxJQUFJLENBQUMsTUFBTSxDQUFDLDJIQUEySCxDQUFDLENBQUM7UUFFekksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpVUFBaVUsQ0FBQyxDQUFDO1FBQy9VLElBQUksQ0FBQyxNQUFNLENBQUMsNkhBQTZILENBQUMsQ0FBQztRQUUzSSxJQUFJLENBQUMsTUFBTSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUVGO0FBL0JELDBEQStCQyJ9
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250515000000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20250515000000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`
|
|
8
|
+
create table if not exists "product_variant_attribute" (
|
|
9
|
+
"id" text not null,
|
|
10
|
+
"product_variant_id" text not null,
|
|
11
|
+
"attribute_key" text not null,
|
|
12
|
+
"attribute_value" text not null,
|
|
13
|
+
"created_at" timestamptz not null default now(),
|
|
14
|
+
"updated_at" timestamptz not null default now(),
|
|
15
|
+
"deleted_at" timestamptz null,
|
|
16
|
+
constraint "product_variant_attribute_pkey" primary key ("id")
|
|
17
|
+
);
|
|
18
|
+
`);
|
|
19
|
+
this.addSql(`
|
|
20
|
+
CREATE INDEX IF NOT EXISTS "IDX_product_variant_attribute_deleted_at"
|
|
21
|
+
ON "product_variant_attribute" (deleted_at)
|
|
22
|
+
WHERE deleted_at IS NULL;
|
|
23
|
+
`);
|
|
24
|
+
this.addSql(`
|
|
25
|
+
CREATE INDEX IF NOT EXISTS "IDX_product_variant_attribute_product_variant_id"
|
|
26
|
+
ON "product_variant_attribute" (product_variant_id)
|
|
27
|
+
WHERE deleted_at IS NULL;
|
|
28
|
+
`);
|
|
29
|
+
this.addSql(`
|
|
30
|
+
do $$
|
|
31
|
+
begin
|
|
32
|
+
if not exists (
|
|
33
|
+
select 1
|
|
34
|
+
from information_schema.table_constraints
|
|
35
|
+
where table_name = 'product_variant_attribute'
|
|
36
|
+
and constraint_name = 'product_variant_attribute_product_variant_id_foreign'
|
|
37
|
+
) then
|
|
38
|
+
alter table "product_variant_attribute"
|
|
39
|
+
add constraint "product_variant_attribute_product_variant_id_foreign"
|
|
40
|
+
foreign key ("product_variant_id") references "product_variant" ("id")
|
|
41
|
+
on update cascade on delete cascade;
|
|
42
|
+
end if;
|
|
43
|
+
end;
|
|
44
|
+
$$;
|
|
45
|
+
`);
|
|
46
|
+
this.addSql(`
|
|
47
|
+
do $$
|
|
48
|
+
begin
|
|
49
|
+
if to_regclass('product_variant') is not null and
|
|
50
|
+
exists (
|
|
51
|
+
select 1 from information_schema.columns
|
|
52
|
+
where table_name = 'product_variant'
|
|
53
|
+
and column_name = 'color'
|
|
54
|
+
) then
|
|
55
|
+
insert into "product_variant_attribute"
|
|
56
|
+
("id", "product_variant_id", "attribute_key", "attribute_value", "created_at", "updated_at")
|
|
57
|
+
select
|
|
58
|
+
concat('pvat_', substr(md5(random()::text), 1, 24)),
|
|
59
|
+
pv.id,
|
|
60
|
+
'color',
|
|
61
|
+
pv.color,
|
|
62
|
+
now(),
|
|
63
|
+
now()
|
|
64
|
+
from "product_variant" pv
|
|
65
|
+
where pv.color is not null
|
|
66
|
+
and pv.color <> ''
|
|
67
|
+
and not exists (
|
|
68
|
+
select 1
|
|
69
|
+
from "product_variant_attribute" pva
|
|
70
|
+
where pva.product_variant_id = pv.id
|
|
71
|
+
and pva.attribute_key = 'color'
|
|
72
|
+
and pva.deleted_at is null
|
|
73
|
+
);
|
|
74
|
+
end if;
|
|
75
|
+
end;
|
|
76
|
+
$$;
|
|
77
|
+
`);
|
|
78
|
+
this.addSql(`
|
|
79
|
+
do $$
|
|
80
|
+
begin
|
|
81
|
+
if to_regclass('product_variant') is not null and
|
|
82
|
+
exists (
|
|
83
|
+
select 1 from information_schema.columns
|
|
84
|
+
where table_name = 'product_variant'
|
|
85
|
+
and column_name = 'size'
|
|
86
|
+
) then
|
|
87
|
+
insert into "product_variant_attribute"
|
|
88
|
+
("id", "product_variant_id", "attribute_key", "attribute_value", "created_at", "updated_at")
|
|
89
|
+
select
|
|
90
|
+
concat('pvat_', substr(md5(random()::text), 1, 24)),
|
|
91
|
+
pv.id,
|
|
92
|
+
'size',
|
|
93
|
+
pv.size,
|
|
94
|
+
now(),
|
|
95
|
+
now()
|
|
96
|
+
from "product_variant" pv
|
|
97
|
+
where pv.size is not null
|
|
98
|
+
and pv.size <> ''
|
|
99
|
+
and not exists (
|
|
100
|
+
select 1
|
|
101
|
+
from "product_variant_attribute" pva
|
|
102
|
+
where pva.product_variant_id = pv.id
|
|
103
|
+
and pva.attribute_key = 'size'
|
|
104
|
+
and pva.deleted_at is null
|
|
105
|
+
);
|
|
106
|
+
end if;
|
|
107
|
+
end;
|
|
108
|
+
$$;
|
|
109
|
+
`);
|
|
110
|
+
this.addSql(`
|
|
111
|
+
do $$
|
|
112
|
+
begin
|
|
113
|
+
if to_regclass('product_variant') is not null and
|
|
114
|
+
exists (
|
|
115
|
+
select 1 from information_schema.columns
|
|
116
|
+
where table_name = 'product_variant'
|
|
117
|
+
and column_name = 'custom_attribute_1'
|
|
118
|
+
) then
|
|
119
|
+
insert into "product_variant_attribute"
|
|
120
|
+
("id", "product_variant_id", "attribute_key", "attribute_value", "created_at", "updated_at")
|
|
121
|
+
select
|
|
122
|
+
concat('pvat_', substr(md5(random()::text), 1, 24)),
|
|
123
|
+
pv.id,
|
|
124
|
+
trim(split_part(pv.custom_attribute_1, ':', 1)),
|
|
125
|
+
trim(regexp_replace(pv.custom_attribute_1, '^[^:]*:', '')),
|
|
126
|
+
now(),
|
|
127
|
+
now()
|
|
128
|
+
from "product_variant" pv
|
|
129
|
+
where pv.custom_attribute_1 is not null
|
|
130
|
+
and pv.custom_attribute_1 <> ''
|
|
131
|
+
and pv.custom_attribute_1 like '%:%'
|
|
132
|
+
and trim(split_part(pv.custom_attribute_1, ':', 1)) <> ''
|
|
133
|
+
and trim(regexp_replace(pv.custom_attribute_1, '^[^:]*:', '')) <> ''
|
|
134
|
+
and not exists (
|
|
135
|
+
select 1
|
|
136
|
+
from "product_variant_attribute" pva
|
|
137
|
+
where pva.product_variant_id = pv.id
|
|
138
|
+
and pva.attribute_key = trim(split_part(pv.custom_attribute_1, ':', 1))
|
|
139
|
+
and pva.deleted_at is null
|
|
140
|
+
);
|
|
141
|
+
end if;
|
|
142
|
+
end;
|
|
143
|
+
$$;
|
|
144
|
+
`);
|
|
145
|
+
this.addSql(`
|
|
146
|
+
do $$
|
|
147
|
+
begin
|
|
148
|
+
if to_regclass('product_variant') is not null and
|
|
149
|
+
exists (
|
|
150
|
+
select 1 from information_schema.columns
|
|
151
|
+
where table_name = 'product_variant'
|
|
152
|
+
and column_name = 'custom_attribute_2'
|
|
153
|
+
) then
|
|
154
|
+
insert into "product_variant_attribute"
|
|
155
|
+
("id", "product_variant_id", "attribute_key", "attribute_value", "created_at", "updated_at")
|
|
156
|
+
select
|
|
157
|
+
concat('pvat_', substr(md5(random()::text), 1, 24)),
|
|
158
|
+
pv.id,
|
|
159
|
+
trim(split_part(pv.custom_attribute_2, ':', 1)),
|
|
160
|
+
trim(regexp_replace(pv.custom_attribute_2, '^[^:]*:', '')),
|
|
161
|
+
now(),
|
|
162
|
+
now()
|
|
163
|
+
from "product_variant" pv
|
|
164
|
+
where pv.custom_attribute_2 is not null
|
|
165
|
+
and pv.custom_attribute_2 <> ''
|
|
166
|
+
and pv.custom_attribute_2 like '%:%'
|
|
167
|
+
and trim(split_part(pv.custom_attribute_2, ':', 1)) <> ''
|
|
168
|
+
and trim(regexp_replace(pv.custom_attribute_2, '^[^:]*:', '')) <> ''
|
|
169
|
+
and not exists (
|
|
170
|
+
select 1
|
|
171
|
+
from "product_variant_attribute" pva
|
|
172
|
+
where pva.product_variant_id = pv.id
|
|
173
|
+
and pva.attribute_key = trim(split_part(pv.custom_attribute_2, ':', 1))
|
|
174
|
+
and pva.deleted_at is null
|
|
175
|
+
);
|
|
176
|
+
end if;
|
|
177
|
+
end;
|
|
178
|
+
$$;
|
|
179
|
+
`);
|
|
180
|
+
}
|
|
181
|
+
async down() {
|
|
182
|
+
this.addSql(`drop table if exists "product_variant_attribute" cascade;`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.Migration20250515000000 = Migration20250515000000;
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA1MTUwMDAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9waWNrdXAtZGF0ZXRpbWUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDUxNTAwMDAwMC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUMzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0tBV1gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7OztLQUlYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7S0FJWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0ErQlgsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQStCWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0NYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsMkRBQTJELENBQUMsQ0FBQztJQUMzRSxDQUFDO0NBQ0Y7QUEzTEQsMERBMkxDIn0=
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250519010100 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
const TABLE_NAME = `"pick_date_pick_avai_fulf_ship_opti-1f68c8a64"`;
|
|
6
|
+
class Migration20250519010100 extends migrations_1.Migration {
|
|
7
|
+
async up() {
|
|
8
|
+
this.addSql(`
|
|
9
|
+
CREATE TABLE IF NOT EXISTS ${TABLE_NAME} (
|
|
10
|
+
"pickup_availability_id" text NOT NULL,
|
|
11
|
+
"shipping_option_id" text NOT NULL,
|
|
12
|
+
"id" text NOT NULL,
|
|
13
|
+
"created_at" timestamptz NOT NULL DEFAULT now(),
|
|
14
|
+
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
|
15
|
+
"deleted_at" timestamptz NULL,
|
|
16
|
+
CONSTRAINT "pick_date_pick_avai_fulf_ship_opti-1f68c8a64_pkey" PRIMARY KEY ("pickup_availability_id", "shipping_option_id")
|
|
17
|
+
);
|
|
18
|
+
`);
|
|
19
|
+
this.addSql(`
|
|
20
|
+
CREATE INDEX IF NOT EXISTS "IDX_id_-1f68c8a64"
|
|
21
|
+
ON ${TABLE_NAME} (id);
|
|
22
|
+
`);
|
|
23
|
+
this.addSql(`
|
|
24
|
+
CREATE INDEX IF NOT EXISTS "IDX_pickup_availability_id_-1f68c8a64"
|
|
25
|
+
ON ${TABLE_NAME} (pickup_availability_id)
|
|
26
|
+
WHERE deleted_at IS NULL;
|
|
27
|
+
`);
|
|
28
|
+
this.addSql(`
|
|
29
|
+
CREATE INDEX IF NOT EXISTS "IDX_shipping_option_id_-1f68c8a64"
|
|
30
|
+
ON ${TABLE_NAME} (shipping_option_id)
|
|
31
|
+
WHERE deleted_at IS NULL;
|
|
32
|
+
`);
|
|
33
|
+
this.addSql(`
|
|
34
|
+
CREATE INDEX IF NOT EXISTS "IDX_deleted_at_-1f68c8a64"
|
|
35
|
+
ON ${TABLE_NAME} (deleted_at);
|
|
36
|
+
`);
|
|
37
|
+
this.addSql(`
|
|
38
|
+
CREATE TABLE IF NOT EXISTS "link_module_migrations" (
|
|
39
|
+
id SERIAL PRIMARY KEY,
|
|
40
|
+
table_name VARCHAR(255) NOT NULL UNIQUE,
|
|
41
|
+
link_descriptor JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
42
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
43
|
+
);
|
|
44
|
+
`);
|
|
45
|
+
this.addSql(`
|
|
46
|
+
INSERT INTO "link_module_migrations" (table_name, link_descriptor)
|
|
47
|
+
VALUES (
|
|
48
|
+
'pick_date_pick_avai_fulf_ship_opti-1f68c8a64',
|
|
49
|
+
'{"fromModule":"pickup_datetime","toModule":"fulfillment","fromModel":"pickupAvailability","toModel":"shippingOption"}'::jsonb
|
|
50
|
+
)
|
|
51
|
+
ON CONFLICT (table_name) DO UPDATE
|
|
52
|
+
SET link_descriptor = EXCLUDED.link_descriptor;
|
|
53
|
+
`);
|
|
54
|
+
}
|
|
55
|
+
async down() {
|
|
56
|
+
this.addSql(`
|
|
57
|
+
DELETE FROM "link_module_migrations"
|
|
58
|
+
WHERE table_name = 'pick_date_pick_avai_fulf_ship_opti-1f68c8a64';
|
|
59
|
+
`);
|
|
60
|
+
this.addSql(`DROP TABLE IF EXISTS ${TABLE_NAME} CASCADE;`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.Migration20250519010100 = Migration20250519010100;
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA1MTkwMTAxMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9waWNrdXAtZGF0ZXRpbWUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDUxOTAxMDEwMC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBTSxVQUFVLEdBQUcsZ0RBQWdELENBQUM7QUFFcEUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUMzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUM7bUNBQ21CLFVBQVU7Ozs7Ozs7OztLQVN4QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDOztXQUVMLFVBQVU7S0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7V0FFTCxVQUFVOztLQUVoQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDOztXQUVMLFVBQVU7O0tBRWhCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUM7O1dBRUwsVUFBVTtLQUNoQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDOzs7Ozs7O0tBT1gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7Ozs7Ozs7S0FRWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsVUFBVSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBQ0Y7QUFoRUQsMERBZ0VDIn0=
|
|
@@ -18,28 +18,23 @@ const convertTimeToMinutes = (time) => {
|
|
|
18
18
|
exports.convertTimeToMinutes = convertTimeToMinutes;
|
|
19
19
|
exports.validateOverlapsPickupStep = (0, workflows_sdk_1.createStep)("validate-overlaps-pickup-step", async (input) => {
|
|
20
20
|
const { schedules } = input;
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
const isStartBetweenExisting = inputStartTime >= existingStartTime &&
|
|
33
|
-
inputStartTime <= existingEndTime;
|
|
34
|
-
const isEndBetweenExisting = inputEndTime >= existingStartTime &&
|
|
35
|
-
inputEndTime <= existingEndTime;
|
|
36
|
-
return isStartBetweenExisting || isEndBetweenExisting;
|
|
21
|
+
for (const schedule of schedules) {
|
|
22
|
+
const timeSlots = schedule.timeSlots ?? [];
|
|
23
|
+
for (let index = 0; index < timeSlots.length; index++) {
|
|
24
|
+
const currentSlot = timeSlots[index];
|
|
25
|
+
const currentStart = (0, exports.convertTimeToMinutes)(currentSlot.start);
|
|
26
|
+
const currentEnd = (0, exports.convertTimeToMinutes)(currentSlot.end);
|
|
27
|
+
const overlapping = timeSlots.slice(index + 1).some((nextSlot) => {
|
|
28
|
+
const nextStart = (0, exports.convertTimeToMinutes)(nextSlot.start);
|
|
29
|
+
const nextEnd = (0, exports.convertTimeToMinutes)(nextSlot.end);
|
|
30
|
+
const overlaps = currentStart <= nextEnd && currentEnd >= nextStart;
|
|
31
|
+
return overlaps;
|
|
37
32
|
});
|
|
38
|
-
if (
|
|
33
|
+
if (overlapping) {
|
|
39
34
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Availability overlaps with existing availabilities");
|
|
40
35
|
}
|
|
41
36
|
}
|
|
42
37
|
}
|
|
43
38
|
return new workflows_sdk_1.StepResponse(true, true);
|
|
44
39
|
});
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVPdmVybGFwc1BpY2t1cFN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BpY2t1cC1hdmFpbGFibGl0eS9zdGVwcy92YWxpZGF0ZU92ZXJsYXBzUGlja3VwU3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFDN0UscURBQXdEO0FBV2pELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHFCQUFxQixDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ2pDLE1BQU0sWUFBWSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTFDLElBQUksWUFBWSxHQUFHLENBQUMsSUFBSSxZQUFZLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHFCQUFxQixDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQXBCVyxRQUFBLG9CQUFvQix3QkFvQi9CO0FBRVcsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDBCQUFVLEVBQ2xELCtCQUErQixFQUMvQixLQUFLLEVBQUUsS0FBb0IsRUFBRSxFQUFFO0lBQzdCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFNUIsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUUzQyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3RELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxNQUFNLFlBQVksR0FBRyxJQUFBLDRCQUFvQixFQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3RCxNQUFNLFVBQVUsR0FBRyxJQUFBLDRCQUFvQixFQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUV6RCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDL0QsTUFBTSxTQUFTLEdBQUcsSUFBQSw0QkFBb0IsRUFBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUEsNEJBQW9CLEVBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVuRCxNQUFNLFFBQVEsR0FDWixZQUFZLElBQUksT0FBTyxJQUFJLFVBQVUsSUFBSSxTQUFTLENBQUM7Z0JBRXJELE9BQU8sUUFBUSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsb0RBQW9ELENBQ3JELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUNGLENBQUMifQ==
|