feat(M05-C): 完成团购验券与第三方直订
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
CREATE TABLE IF NOT EXISTS qipai_third_party_configs (
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
tenant_id BIGINT UNSIGNED NOT NULL,
|
||||
store_id BIGINT UNSIGNED NULL,
|
||||
provider VARCHAR(32) NOT NULL,
|
||||
mode VARCHAR(16) NOT NULL DEFAULT 'MANUAL',
|
||||
enabled TINYINT(1) NOT NULL DEFAULT 1,
|
||||
credential_ref VARCHAR(255) NOT NULL DEFAULT '',
|
||||
settings JSON NOT NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3)
|
||||
ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
CONSTRAINT fk_qipai_third_party_config_tenant
|
||||
FOREIGN KEY (tenant_id) REFERENCES qipai_tenants(id),
|
||||
CONSTRAINT fk_qipai_third_party_config_store
|
||||
FOREIGN KEY (store_id) REFERENCES qipai_stores(id),
|
||||
UNIQUE KEY uq_qipai_third_party_config_scope (tenant_id, provider, store_id),
|
||||
KEY idx_qipai_third_party_config_resolution (tenant_id, provider, enabled, store_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS qipai_third_party_mappings (
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
tenant_id BIGINT UNSIGNED NOT NULL,
|
||||
provider VARCHAR(32) NOT NULL,
|
||||
resource_type VARCHAR(16) NOT NULL,
|
||||
external_ref VARCHAR(128) NOT NULL,
|
||||
local_resource_id BIGINT UNSIGNED NOT NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
CONSTRAINT fk_qipai_third_party_mapping_tenant
|
||||
FOREIGN KEY (tenant_id) REFERENCES qipai_tenants(id),
|
||||
UNIQUE KEY uq_qipai_third_party_mapping_external
|
||||
(tenant_id, provider, resource_type, external_ref),
|
||||
KEY idx_qipai_third_party_mapping_local
|
||||
(tenant_id, provider, resource_type, local_resource_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS qipai_group_vouchers (
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
tenant_id BIGINT UNSIGNED NOT NULL,
|
||||
provider VARCHAR(32) NOT NULL,
|
||||
voucher_hash CHAR(64) NOT NULL,
|
||||
voucher_masked VARCHAR(64) NOT NULL,
|
||||
external_product_id VARCHAR(128) NOT NULL DEFAULT '',
|
||||
status VARCHAR(32) NOT NULL DEFAULT 'RECEIVED',
|
||||
amount_cents INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
expires_at DATETIME(3) NULL,
|
||||
redeemed_at DATETIME(3) NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
CONSTRAINT fk_qipai_group_voucher_tenant
|
||||
FOREIGN KEY (tenant_id) REFERENCES qipai_tenants(id),
|
||||
UNIQUE KEY uq_qipai_group_voucher_hash (tenant_id, provider, voucher_hash),
|
||||
KEY idx_qipai_group_voucher_status (tenant_id, provider, status, created_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS qipai_group_redemptions (
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
tenant_id BIGINT UNSIGNED NOT NULL,
|
||||
voucher_id BIGINT UNSIGNED NOT NULL,
|
||||
order_id BIGINT UNSIGNED NOT NULL,
|
||||
store_id BIGINT UNSIGNED NOT NULL,
|
||||
actor_id BIGINT UNSIGNED NULL,
|
||||
redemption_mode VARCHAR(16) NOT NULL,
|
||||
client_request_id VARCHAR(128) NOT NULL,
|
||||
status VARCHAR(32) NOT NULL,
|
||||
failure_code VARCHAR(64) NOT NULL DEFAULT '',
|
||||
provider_response JSON NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
completed_at DATETIME(3) NULL,
|
||||
CONSTRAINT fk_qipai_group_redemption_tenant
|
||||
FOREIGN KEY (tenant_id) REFERENCES qipai_tenants(id),
|
||||
CONSTRAINT fk_qipai_group_redemption_voucher
|
||||
FOREIGN KEY (voucher_id) REFERENCES qipai_group_vouchers(id),
|
||||
CONSTRAINT fk_qipai_group_redemption_order
|
||||
FOREIGN KEY (order_id) REFERENCES qipai_orders(id),
|
||||
CONSTRAINT fk_qipai_group_redemption_store
|
||||
FOREIGN KEY (store_id) REFERENCES qipai_stores(id),
|
||||
UNIQUE KEY uq_qipai_group_redemption_request (tenant_id, client_request_id),
|
||||
UNIQUE KEY uq_qipai_group_redemption_voucher (tenant_id, voucher_id),
|
||||
KEY idx_qipai_group_redemption_status (tenant_id, status, created_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS qipai_direct_bookings (
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
tenant_id BIGINT UNSIGNED NOT NULL,
|
||||
provider VARCHAR(32) NOT NULL,
|
||||
event_id VARCHAR(128) NOT NULL,
|
||||
external_booking_no VARCHAR(128) NOT NULL,
|
||||
external_store_ref VARCHAR(128) NOT NULL,
|
||||
external_room_ref VARCHAR(128) NOT NULL,
|
||||
store_id BIGINT UNSIGNED NULL,
|
||||
room_id BIGINT UNSIGNED NULL,
|
||||
customer_ref_hash CHAR(64) NOT NULL DEFAULT '',
|
||||
starts_at DATETIME(3) NOT NULL,
|
||||
ends_at DATETIME(3) NOT NULL,
|
||||
amount_cents INT UNSIGNED NOT NULL,
|
||||
status VARCHAR(32) NOT NULL DEFAULT 'PENDING_MAPPING',
|
||||
order_id BIGINT UNSIGNED NULL,
|
||||
claimed_user_id BIGINT UNSIGNED NULL,
|
||||
payload JSON NOT NULL,
|
||||
failure_code VARCHAR(64) NOT NULL DEFAULT '',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
claimed_at DATETIME(3) NULL,
|
||||
CONSTRAINT fk_qipai_direct_booking_tenant
|
||||
FOREIGN KEY (tenant_id) REFERENCES qipai_tenants(id),
|
||||
CONSTRAINT fk_qipai_direct_booking_store
|
||||
FOREIGN KEY (store_id) REFERENCES qipai_stores(id),
|
||||
CONSTRAINT fk_qipai_direct_booking_room
|
||||
FOREIGN KEY (room_id) REFERENCES qipai_rooms(id),
|
||||
CONSTRAINT fk_qipai_direct_booking_order
|
||||
FOREIGN KEY (order_id) REFERENCES qipai_orders(id),
|
||||
UNIQUE KEY uq_qipai_direct_booking_event (tenant_id, provider, event_id),
|
||||
UNIQUE KEY uq_qipai_direct_booking_no
|
||||
(tenant_id, provider, external_booking_no),
|
||||
KEY idx_qipai_direct_booking_status (tenant_id, provider, status, created_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
INSERT IGNORE INTO qipai_schema_migrations (version, name)
|
||||
VALUES ('2026062217', 'm05c_third_party');
|
||||
Reference in New Issue
Block a user