#!/usr/bin/env python3
"""Fix the messages table sequence_id column to have a proper default."""

import os
from sqlalchemy import create_engine, text

os.environ["LETTA_PG_URI"] = "postgresql://letta:genesis2025@localhost:5432/letta"

from letta.database_utils import get_database_uri_for_context
from letta.settings import settings

# Get sync URI
sync_uri = get_database_uri_for_context(settings.letta_pg_URI, "sync")
engine = create_engine(sync_uri)

print("Fixing messages.sequence_id column...")

with engine.connect() as conn:
    # Create a sequence for message sequence_id
    conn.execute(text("""
        CREATE SEQUENCE IF NOT EXISTS messages_sequence_id_seq;
    """))

    # Set the sequence as the default for the column
    conn.execute(text("""
        ALTER TABLE messages
        ALTER COLUMN sequence_id
        SET DEFAULT nextval('messages_sequence_id_seq');
    """))

    # Make sure the sequence starts from the current max value + 1
    conn.execute(text("""
        SELECT setval('messages_sequence_id_seq',
                      COALESCE((SELECT MAX(sequence_id) FROM messages), 0) + 1,
                      false);
    """))

    conn.commit()

print("✅ Fixed messages.sequence_id column with sequence default")
