{"level":"info","message":"Connecting to PostgreSQL database...","metadata":{"metadata":{"metadata":{},"service":"serdark-backend","timestamp":"2026-01-30 22:42:55"},"timestamp":"2026-01-30 22:42:55"}}
{"level":"error","message":"Failed to connect to PostgreSQL","metadata":{"metadata":{"error":"","service":"serdark-backend","timestamp":"2026-01-30 22:42:55"},"timestamp":"2026-01-30 22:42:55"}}
{"level":"info","message":"Connecting to PostgreSQL database...","metadata":{"metadata":{"metadata":{},"service":"serdark-backend","timestamp":"2026-01-30 22:46:27"},"timestamp":"2026-01-30 22:46:27"}}
{"level":"error","message":"Failed to connect to PostgreSQL","metadata":{"metadata":{"error":"","service":"serdark-backend","timestamp":"2026-01-30 22:46:27"},"timestamp":"2026-01-30 22:46:27"}}
{"level":"info","message":"Connecting to PostgreSQL database...","metadata":{"metadata":{"metadata":{},"service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: skipping PostgreSQL connection","metadata":{"metadata":{"service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"info","message":"Initializing database tables...","metadata":{"metadata":{"metadata":{},"service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: returning empty result for query","metadata":{"metadata":{"query":"\n      CREATE TABLE IF NOT EXISTS users (\n        id SERIAL PRIMARY KEY,\n        uuid UUID DEFAULT gen_random_uuid() UNIQUE NOT NULL,\n        email VARCHAR(255) UNIQUE NOT NULL,\n        phone VARCHAR(20),\n        password_hash VARCHAR(255) NOT NULL,\n        first_name VARCHAR(50) NOT NULL,\n        last_name VARCHAR(50) NOT NULL,\n        role VARCHAR(20) DEFAULT 'user' NOT NULL,\n        is_active BOOLEAN DEFAULT true NOT NULL,\n        is_verified BOOLEAN DEFAULT false NOT NULL,\n        is_banned BOOLEAN DEFAULT false NOT NULL,\n        ban_reason TEXT,\n        two_fa_enabled BOOLEAN DEFAULT false NOT NULL,\n        two_fa_secret VARCHAR(255),\n        backup_codes JSONB,\n        profile_picture VARCHAR(255),\n        bio TEXT,\n        preferences JSONB DEFAULT '{}',\n        last_login TIMESTAMP,\n        password_changed_at TIMESTAMP,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n        updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n        deleted_at TIMESTAMP\n      );\n      \n      CREATE INDEX IF NOT EXISTS idx_users_email ON users(email);\n      CREATE INDEX IF NOT EXISTS idx_users_uuid ON users(uuid);\n      CREATE INDEX IF NOT EXISTS idx_users_is_active ON users(is_active);\n      CREATE INDEX IF NOT EXISTS idx_users_created_at ON users(created_at);\n    ","service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: returning empty result for query","metadata":{"metadata":{"query":"\n      CREATE TABLE IF NOT EXISTS sessions (\n        id SERIAL PRIMARY KEY,\n        session_id UUID DEFAULT gen_random_uuid() UNIQUE NOT NULL,\n        user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n        access_token VARCHAR(1000),\n        refresh_token VARCHAR(1000),\n        ip_address VARCHAR(45),\n        user_agent TEXT,\n        expires_at TIMESTAMP NOT NULL,\n        last_activity TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n        \n        UNIQUE(session_id)\n      );\n      \n      CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON sessions(user_id);\n      CREATE INDEX IF NOT EXISTS idx_sessions_expires_at ON sessions(expires_at);\n    ","service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: returning empty result for query","metadata":{"metadata":{"query":"\n      CREATE TABLE IF NOT EXISTS csrf_tokens (\n        id SERIAL PRIMARY KEY,\n        token VARCHAR(255) UNIQUE NOT NULL,\n        user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,\n        session_id UUID,\n        is_used BOOLEAN DEFAULT false NOT NULL,\n        expires_at TIMESTAMP NOT NULL,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n      );\n      \n      CREATE INDEX IF NOT EXISTS idx_csrf_tokens_user_id ON csrf_tokens(user_id);\n      CREATE INDEX IF NOT EXISTS idx_csrf_tokens_expires_at ON csrf_tokens(expires_at);\n    ","service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: returning empty result for query","metadata":{"metadata":{"query":"\n      CREATE TABLE IF NOT EXISTS audit_logs (\n        id SERIAL PRIMARY KEY,\n        event_type VARCHAR(100) NOT NULL,\n        user_id INTEGER REFERENCES users(id) ON DELETE SET NULL,\n        action VARCHAR(50),\n        ip_address VARCHAR(45),\n        user_agent TEXT,\n        severity VARCHAR(20) DEFAULT 'info' NOT NULL,\n        details JSONB,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n      );\n      \n      CREATE INDEX IF NOT EXISTS idx_audit_logs_user_id ON audit_logs(user_id);\n      CREATE INDEX IF NOT EXISTS idx_audit_logs_event_type ON audit_logs(event_type);\n      CREATE INDEX IF NOT EXISTS idx_audit_logs_created_at ON audit_logs(created_at);\n    ","service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: returning empty result for query","metadata":{"metadata":{"query":"\n      CREATE TABLE IF NOT EXISTS rate_limits (\n        id SERIAL PRIMARY KEY,\n        identifier VARCHAR(255) NOT NULL,\n        endpoint VARCHAR(255) NOT NULL,\n        attempts INTEGER DEFAULT 1 NOT NULL,\n        reset_at TIMESTAMP NOT NULL,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n        \n        UNIQUE(identifier, endpoint)\n      );\n      \n      CREATE INDEX IF NOT EXISTS idx_rate_limits_identifier ON rate_limits(identifier);\n      CREATE INDEX IF NOT EXISTS idx_rate_limits_reset_at ON rate_limits(reset_at);\n    ","service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: returning empty result for query","metadata":{"metadata":{"query":"\n      CREATE TABLE IF NOT EXISTS music_files (\n        id SERIAL PRIMARY KEY,\n        user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n        title VARCHAR(255) NOT NULL,\n        artist VARCHAR(255) NOT NULL,\n        genre VARCHAR(100),\n        duration INTEGER,\n        file_path VARCHAR(1000) NOT NULL,\n        file_size BIGINT,\n        mime_type VARCHAR(50),\n        is_public BOOLEAN DEFAULT false NOT NULL,\n        downloads INTEGER DEFAULT 0,\n        plays INTEGER DEFAULT 0,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n        updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n      );\n      \n      CREATE INDEX IF NOT EXISTS idx_music_files_user_id ON music_files(user_id);\n      CREATE INDEX IF NOT EXISTS idx_music_files_is_public ON music_files(is_public);\n      CREATE INDEX IF NOT EXISTS idx_music_files_created_at ON music_files(created_at);\n    ","service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: returning empty result for query","metadata":{"metadata":{"query":"\n      CREATE TABLE IF NOT EXISTS payments (\n        id SERIAL PRIMARY KEY,\n        transaction_id UUID DEFAULT gen_random_uuid() UNIQUE NOT NULL,\n        user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n        amount DECIMAL(10, 2) NOT NULL,\n        currency VARCHAR(3) DEFAULT 'USD' NOT NULL,\n        method VARCHAR(50) NOT NULL,\n        status VARCHAR(20) DEFAULT 'pending' NOT NULL,\n        stripe_payment_id VARCHAR(255),\n        description TEXT,\n        metadata JSONB,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n        updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n      );\n      \n      CREATE INDEX IF NOT EXISTS idx_payments_user_id ON payments(user_id);\n      CREATE INDEX IF NOT EXISTS idx_payments_status ON payments(status);\n      CREATE INDEX IF NOT EXISTS idx_payments_created_at ON payments(created_at);\n    ","service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"warning","message":"MOCK_DATABASE enabled: returning empty result for query","metadata":{"metadata":{"query":"\n      CREATE TABLE IF NOT EXISTS password_reset_tokens (\n        id SERIAL PRIMARY KEY,\n        user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n        token VARCHAR(255) UNIQUE NOT NULL,\n        expires_at TIMESTAMP NOT NULL,\n        used BOOLEAN DEFAULT false NOT NULL,\n        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n      );\n      \n      CREATE INDEX IF NOT EXISTS idx_password_reset_user_id ON password_reset_tokens(user_id);\n      CREATE INDEX IF NOT EXISTS idx_password_reset_expires_at ON password_reset_tokens(expires_at);\n    ","service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"info","message":"All database tables initialized successfully","metadata":{"metadata":{"service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"info","message":"serdark.digital server running on port 5000","metadata":{"metadata":{"metadata":{},"service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"info","message":"API prefix: /api/v1","metadata":{"metadata":{"metadata":{},"service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
{"level":"info","message":"Environment: development","metadata":{"metadata":{"metadata":{},"service":"serdark-backend","timestamp":"2026-01-30 22:46:47"},"timestamp":"2026-01-30 22:46:47"}}
