TONS code - stripe integration
This commit is contained in:
@@ -18,6 +18,7 @@ CREATE TABLE `users` (
|
||||
`role` enum('admin','recruiter') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'recruiter',
|
||||
`company_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`avatar_url` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`stripe_customer_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Stripe Customer ID for payment processing',
|
||||
`is_active` tinyint(1) DEFAULT '1',
|
||||
`last_login_at` timestamp NULL DEFAULT NULL,
|
||||
`email_verified_at` timestamp NULL DEFAULT NULL,
|
||||
@@ -29,7 +30,8 @@ CREATE TABLE `users` (
|
||||
KEY `idx_email` (`email`),
|
||||
KEY `idx_role` (`role`),
|
||||
KEY `idx_active` (`is_active`),
|
||||
KEY `idx_role_active` (`role`,`is_active`)
|
||||
KEY `idx_role_active` (`role`,`is_active`),
|
||||
KEY `idx_stripe_customer_id` (`stripe_customer_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- token_packages
|
||||
@@ -205,13 +207,22 @@ CREATE TABLE `interview_tokens` (
|
||||
CREATE TABLE `payment_records` (
|
||||
`id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT (uuid()),
|
||||
`user_id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`token_package_id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`token_package_id` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`amount` decimal(10,2) NOT NULL,
|
||||
`currency` varchar(3) COLLATE utf8mb4_unicode_ci DEFAULT 'USD',
|
||||
`status` enum('pending','paid','failed','refunded','cancelled') COLLATE utf8mb4_unicode_ci DEFAULT 'pending',
|
||||
`currency` varchar(3) COLLATE utf8mb4_unicode_ci DEFAULT 'EUR',
|
||||
`status` enum('pending','processing','paid','failed','refunded','cancelled') COLLATE utf8mb4_unicode_ci DEFAULT 'pending',
|
||||
`payment_method` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`payment_reference` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`stripe_payment_intent_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Stripe Payment Intent ID for tracking payments',
|
||||
`stripe_payment_method_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Stripe Payment Method ID for saved payment methods',
|
||||
`stripe_customer_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Stripe Customer ID for user payment methods',
|
||||
`payment_flow_type` enum('card','ideal','bank_transfer','admin_granted') COLLATE utf8mb4_unicode_ci DEFAULT 'admin_granted' COMMENT 'Type of payment flow used',
|
||||
`invoice_url` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`stripe_metadata` json DEFAULT NULL COMMENT 'Additional Stripe metadata and webhook data',
|
||||
`refund_reason` text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Reason for payment refund',
|
||||
`refunded_amount` decimal(10,2) DEFAULT '0.00' COMMENT 'Amount refunded for this payment',
|
||||
`custom_quantity` int DEFAULT NULL COMMENT 'Custom token quantity for non-package purchases',
|
||||
`applied_discount_percentage` decimal(5,2) DEFAULT '0.00' COMMENT 'Discount percentage applied to this purchase',
|
||||
`paid_at` timestamp NULL DEFAULT NULL,
|
||||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
@@ -220,6 +231,10 @@ CREATE TABLE `payment_records` (
|
||||
KEY `idx_user_status` (`user_id`,`status`),
|
||||
KEY `idx_payment_reference` (`payment_reference`),
|
||||
KEY `idx_payment_records_user_created` (`user_id`,`created_at` DESC),
|
||||
KEY `idx_stripe_payment_intent_id` (`stripe_payment_intent_id`),
|
||||
KEY `idx_stripe_customer_id` (`stripe_customer_id`),
|
||||
KEY `idx_payment_flow_type` (`payment_flow_type`),
|
||||
KEY `idx_custom_quantity` (`custom_quantity`),
|
||||
CONSTRAINT `payment_records_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `payment_records_ibfk_2` FOREIGN KEY (`token_package_id`) REFERENCES `token_packages` (`id`) ON DELETE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
Reference in New Issue
Block a user