"""csv prediction and auto calcl

Revision ID: b7cb14d539d7
Revises: 057861985319
Create Date: 2026-01-07 10:58:02.724518

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision: str = 'b7cb14d539d7'
down_revision: Union[str, None] = '057861985319'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.alter_column('purchase_order_return', 'status',
               existing_type=postgresql.ENUM('DRAFT', 'PENDING_APPROVAL', 'SENT', 'RECEIVED', 'RETURNED', 'CLOSED', name='purchaseorderstatus'),
               nullable=True)
    op.drop_column('purchase_order_return', 'expected_delivery_date')
    op.add_column('purchase_order_return_lines', sa.Column('return_qty', sa.Integer(), nullable=False))
    op.alter_column('purchase_order_return_lines', 'unit_cost',
               existing_type=sa.DOUBLE_PRECISION(precision=53),
               nullable=True)
    op.drop_column('purchase_order_return_lines', 'received_qty')
    op.drop_column('purchase_order_return_lines', 'ordered_qty')
    op.alter_column('sales_return_order_lines', 'unit_price',
               existing_type=sa.DOUBLE_PRECISION(precision=53),
               nullable=True)
    op.add_column('sales_return_orders', sa.Column('returned_at', sa.DateTime(timezone=True), nullable=False))
    op.alter_column('sales_return_orders', 'channel',
               existing_type=sa.VARCHAR(length=50),
               nullable=True)
    op.drop_column('sales_return_orders', 'order_date')
    op.drop_column('sales_return_orders', 'sold_at')
    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('sales_return_orders', sa.Column('sold_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=False))
    op.add_column('sales_return_orders', sa.Column('order_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=False))
    op.alter_column('sales_return_orders', 'channel',
               existing_type=sa.VARCHAR(length=50),
               nullable=False)
    op.drop_column('sales_return_orders', 'returned_at')
    op.alter_column('sales_return_order_lines', 'unit_price',
               existing_type=sa.DOUBLE_PRECISION(precision=53),
               nullable=False)
    op.add_column('purchase_order_return_lines', sa.Column('ordered_qty', sa.INTEGER(), autoincrement=False, nullable=False))
    op.add_column('purchase_order_return_lines', sa.Column('received_qty', sa.INTEGER(), autoincrement=False, nullable=False))
    op.alter_column('purchase_order_return_lines', 'unit_cost',
               existing_type=sa.DOUBLE_PRECISION(precision=53),
               nullable=False)
    op.drop_column('purchase_order_return_lines', 'return_qty')
    op.add_column('purchase_order_return', sa.Column('expected_delivery_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.alter_column('purchase_order_return', 'status',
               existing_type=postgresql.ENUM('DRAFT', 'PENDING_APPROVAL', 'SENT', 'RECEIVED', 'RETURNED', 'CLOSED', name='purchaseorderstatus'),
               nullable=False)
    # ### end Alembic commands ###
