132 lines
3.0 KiB
SQL
132 lines
3.0 KiB
SQL
-- =====================================================
|
|
-- ORBIQUANT IA - FINANCIAL SCHEMA ENUMS
|
|
-- =====================================================
|
|
-- Description: Type definitions for financial domain
|
|
-- Schema: financial
|
|
-- =====================================================
|
|
|
|
-- Tipos de wallet
|
|
CREATE TYPE financial.wallet_type AS ENUM (
|
|
'trading', -- Para operaciones de trading
|
|
'investment', -- Para cuentas PAMM
|
|
'earnings', -- Para ganancias/distribuciones
|
|
'referral' -- Para bonos de referidos
|
|
);
|
|
|
|
-- Estados de wallet
|
|
CREATE TYPE financial.wallet_status AS ENUM (
|
|
'active',
|
|
'frozen',
|
|
'closed'
|
|
);
|
|
|
|
-- Tipos de transacción
|
|
CREATE TYPE financial.transaction_type AS ENUM (
|
|
'deposit',
|
|
'withdrawal',
|
|
'transfer_in',
|
|
'transfer_out',
|
|
'fee',
|
|
'refund',
|
|
'earning',
|
|
'distribution',
|
|
'bonus'
|
|
);
|
|
|
|
-- Estados de transacción
|
|
CREATE TYPE financial.transaction_status AS ENUM (
|
|
'pending',
|
|
'processing',
|
|
'completed',
|
|
'failed',
|
|
'cancelled',
|
|
'reversed'
|
|
);
|
|
|
|
-- Planes de suscripción
|
|
CREATE TYPE financial.subscription_plan AS ENUM (
|
|
'free',
|
|
'basic',
|
|
'pro',
|
|
'premium',
|
|
'enterprise'
|
|
);
|
|
|
|
-- Estados de suscripción
|
|
CREATE TYPE financial.subscription_status AS ENUM (
|
|
'active',
|
|
'past_due',
|
|
'cancelled',
|
|
'incomplete',
|
|
'trialing',
|
|
'unpaid',
|
|
'paused'
|
|
);
|
|
|
|
-- Monedas soportadas
|
|
CREATE TYPE financial.currency_code AS ENUM (
|
|
'USD',
|
|
'MXN',
|
|
'EUR'
|
|
);
|
|
|
|
-- Métodos de pago
|
|
CREATE TYPE financial.payment_method AS ENUM (
|
|
'card',
|
|
'bank_transfer',
|
|
'wire',
|
|
'crypto',
|
|
'paypal',
|
|
'stripe'
|
|
);
|
|
|
|
-- Estados de pago
|
|
CREATE TYPE financial.payment_status AS ENUM (
|
|
'pending',
|
|
'processing',
|
|
'succeeded',
|
|
'failed',
|
|
'cancelled',
|
|
'refunded'
|
|
);
|
|
|
|
-- Tipos de invoice
|
|
CREATE TYPE financial.invoice_type AS ENUM (
|
|
'subscription',
|
|
'one_time',
|
|
'usage'
|
|
);
|
|
|
|
-- Estados de invoice
|
|
CREATE TYPE financial.invoice_status AS ENUM (
|
|
'draft',
|
|
'open',
|
|
'paid',
|
|
'void',
|
|
'uncollectible'
|
|
);
|
|
|
|
-- Acciones de auditoría
|
|
CREATE TYPE financial.audit_action AS ENUM (
|
|
'created',
|
|
'balance_updated',
|
|
'status_changed',
|
|
'limit_changed',
|
|
'frozen',
|
|
'unfrozen',
|
|
'closed'
|
|
);
|
|
|
|
COMMENT ON TYPE financial.wallet_type IS 'Tipos de wallets en el sistema';
|
|
COMMENT ON TYPE financial.wallet_status IS 'Estados posibles de una wallet';
|
|
COMMENT ON TYPE financial.transaction_type IS 'Tipos de transacciones financieras';
|
|
COMMENT ON TYPE financial.transaction_status IS 'Estados del ciclo de vida de una transacción';
|
|
COMMENT ON TYPE financial.subscription_plan IS 'Planes de suscripción disponibles';
|
|
COMMENT ON TYPE financial.subscription_status IS 'Estados de suscripción según Stripe';
|
|
COMMENT ON TYPE financial.currency_code IS 'Códigos de moneda ISO 4217 soportados';
|
|
COMMENT ON TYPE financial.payment_method IS 'Métodos de pago aceptados';
|
|
COMMENT ON TYPE financial.payment_status IS 'Estados de procesamiento de pagos';
|
|
COMMENT ON TYPE financial.invoice_type IS 'Tipos de factura';
|
|
COMMENT ON TYPE financial.invoice_status IS 'Estados de factura';
|
|
COMMENT ON TYPE financial.audit_action IS 'Acciones auditables en wallets';
|