Files
aitbc/apps/coordinator-api/migrations/004_payments.sql
oib 15427c96c0 chore: update file permissions to executable across repository
- Change file mode from 644 to 755 for all project files
- Add chain_id parameter to get_balance RPC endpoint with default "ait-devnet"
- Rename Miner.extra_meta_data to extra_metadata for consistency
2026-03-06 22:17:54 +01:00

55 lines
1.9 KiB
SQL
Executable File

-- Migration: Add payment support
-- Date: 2026-01-26
-- Add payment tracking to jobs table
ALTER TABLE job
ADD COLUMN payment_id VARCHAR(255) REFERENCES job_payments(id),
ADD COLUMN payment_status VARCHAR(20);
-- Create job_payments table
CREATE TABLE IF NOT EXISTS job_payments (
id VARCHAR(255) PRIMARY KEY,
job_id VARCHAR(255) NOT NULL,
amount DECIMAL(20, 8) NOT NULL,
currency VARCHAR(10) DEFAULT 'AITBC',
status VARCHAR(20) DEFAULT 'pending',
payment_method VARCHAR(20) DEFAULT 'aitbc_token',
escrow_address VARCHAR(100),
refund_address VARCHAR(100),
transaction_hash VARCHAR(100),
refund_transaction_hash VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
escrowed_at TIMESTAMP,
released_at TIMESTAMP,
refunded_at TIMESTAMP,
expires_at TIMESTAMP,
meta_data JSON
);
-- Create payment_escrows table
CREATE TABLE IF NOT EXISTS payment_escrows (
id VARCHAR(255) PRIMARY KEY,
payment_id VARCHAR(255) NOT NULL,
amount DECIMAL(20, 8) NOT NULL,
currency VARCHAR(10) DEFAULT 'AITBC',
address VARCHAR(100) NOT NULL,
is_active BOOLEAN DEFAULT TRUE,
is_released BOOLEAN DEFAULT FALSE,
is_refunded BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
released_at TIMESTAMP,
refunded_at TIMESTAMP,
expires_at TIMESTAMP
);
-- Create indexes
CREATE INDEX IF NOT EXISTS idx_job_payments_job_id ON job_payments(job_id);
CREATE INDEX IF NOT EXISTS idx_job_payments_status ON job_payments(status);
CREATE INDEX IF NOT EXISTS idx_job_payments_created_at ON job_payments(created_at);
CREATE INDEX IF NOT EXISTS idx_payment_escrows_payment_id ON payment_escrows(payment_id);
CREATE INDEX IF NOT EXISTS idx_payment_escrows_address ON payment_escrows(address);
-- Add index for job payment_id
CREATE INDEX IF NOT EXISTS idx_job_payment_id ON job(payment_id);