trading-platform-database-v2/ddl/00-global-functions.sql
Adrian Flores Cortes f64251e459 [TASK-2026-02-03-ANALISIS-DDL-MODELADO] refactor(ddl): FASE-2 Conflicts & Duplications
ST-2.1: Unify timeframe enum
- Created ddl/00-global-types.sql with public.trading_timeframe
- Marked trading.timeframe and market_data.timeframe as DEPRECATED

ST-2.2: Resolve transaction_type conflict
- Documented rename plan: financial.wallet_transaction_type
- Documented rename plan: investment.investment_transaction_type
- Added deprecation comments to both enums

ST-2.3: Unify common functions
- Created ddl/00-global-functions.sql with public.update_updated_at()
- Marked schema-specific functions as DEPRECATED:
  - auth.update_updated_at()
  - education.update_updated_at_column()
  - financial.update_timestamp()
  - feature_flags.update_timestamp()

Migrations created (not executed):
- 2026-02-03_unify_timeframe_enum.sql
- 2026-02-03_rename_transaction_type_enums.sql
- 2026-02-03_unify_common_functions.sql

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 23:51:08 -06:00

46 lines
2.0 KiB
PL/PgSQL

-- ============================================================================
-- OrbiQuant IA - Trading Platform
-- File: ddl/00-global-functions.sql
-- Description: Global Functions - Used across all schemas
-- Created: 2026-02-03
-- Task: ST-2.3 - Unify common functions in public schema
-- Issue: DUP-003
-- ============================================================================
-- These functions are created in the public schema for reuse across all
-- domain schemas (auth, trading, financial, education, etc.)
-- ============================================================================
-- ============================================================================
-- FUNCTION: public.update_updated_at()
-- Purpose: Automatically update the updated_at column on row modification
-- Usage: Create trigger on tables with updated_at column
-- ============================================================================
-- Replaces duplicated functions:
-- - auth.update_updated_at()
-- - education.update_updated_at_column()
-- - financial.update_timestamp()
-- - feature_flags.update_timestamp()
-- ============================================================================
CREATE OR REPLACE FUNCTION public.update_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
COMMENT ON FUNCTION public.update_updated_at() IS
'Trigger function to auto-update updated_at timestamp. Use in BEFORE UPDATE triggers.
Unified function replacing schema-specific versions (auth, education, financial, feature_flags).
Migration: migrations/2026-02-03_unify_common_functions.sql | Issue: DUP-003';
-- ============================================================================
-- USAGE EXAMPLE
-- ============================================================================
-- CREATE TRIGGER trg_tablename_updated_at
-- BEFORE UPDATE ON schema.tablename
-- FOR EACH ROW
-- EXECUTE FUNCTION public.update_updated_at();
-- ============================================================================