def METHOD_NAME() -> None:
    op.add_column(
        'project',
        sa.Column('first_published_at', sa.TIMESTAMP(timezone=True), nullable=True),
    )
    op.add_column(
        'project', sa.Column('published_at', sa.TIMESTAMP(timezone=True), nullable=True)
    )
    op.add_column(
        'project', sa.Column('start_at', sa.TIMESTAMP(timezone=True), nullable=True)
    )
    op.add_column(
        'project', sa.Column('end_at', sa.TIMESTAMP(timezone=True), nullable=True)
    )
    op.create_index(
        op.f('ix_project_published_at'), 'project', ['published_at'], unique=False
    )
    op.create_index(op.f('ix_project_start_at'), 'project', ['start_at'], unique=False)
    op.create_index(op.f('ix_project_end_at'), 'project', ['end_at'], unique=False)
    # Index existing timestamp and state columns
    op.create_index(
        op.f('ix_project_cfp_end_at'), 'project', ['cfp_end_at'], unique=False
    )
    op.create_index(
        op.f('ix_project_cfp_start_at'), 'project', ['cfp_start_at'], unique=False
    )
    op.create_index(op.f('ix_project_state'), 'project', ['state'], unique=False)
    op.create_index(
        op.f('ix_project_cfp_state'), 'project', ['cfp_state'], unique=False
    )
    op.create_index(
        op.f('ix_project_schedule_state'), 'project', ['schedule_state'], unique=False
    )
    # Update project start_at/end_at timestamps where sessions exist
    conn = op.get_bind()
    count = conn.scalar(sa.select(sa.func.count('*')).select_from(project))
    progress = get_progressbar("Projects", count)
    progress.start()
    project_ids = conn.execute(sa.select(project.c.id))
    for counter, row in enumerate(project_ids):
        start_at = conn.scalar(
            sa.select(sa.func.min(session.c.start_at))
            .where(session.c.start_at.is_not(None))
            .where(session.c.project_id == row.id)
        )
        if start_at is not None:
            end_at = conn.scalar(
                sa.select(sa.func.max(session.c.end_at))
                .where(session.c.end_at.is_not(None))
                .where(session.c.project_id == row.id)
            )
            conn.execute(
                project.update()
                .where(project.c.id == row.id)
                .values(start_at=start_at, end_at=end_at)
            )
        progress.update(counter)
    progress.finish()