"""Increase numeric precision

Revision ID: b52f59f18e0c
Revises: c1f8187cebb8
Create Date: 2026-07-16 15:08:45.603005

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = 'b52f59f18e0c'
down_revision: Union[str, None] = 'c1f8187cebb8'
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('maintenance_diesel_record', 'diesel_ltr',
               existing_type=sa.NUMERIC(precision=10, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=False)
    op.alter_column('maintenance_diesel_record', 'oil_ltr',
               existing_type=sa.NUMERIC(precision=10, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_incoming_material', 'quantity',
               existing_type=sa.NUMERIC(precision=12, scale=3),
               type_=sa.Numeric(precision=18, scale=3),
               existing_nullable=False)
    op.alter_column('maintenance_incoming_material', 'rate',
               existing_type=sa.NUMERIC(precision=12, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_incoming_material', 'total_amount',
               existing_type=sa.NUMERIC(precision=14, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_incoming_material', 'discount',
               existing_type=sa.NUMERIC(precision=10, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_lpg_gas_record', 'kg',
               existing_type=sa.NUMERIC(precision=10, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=False)
    op.alter_column('maintenance_lpg_gas_record', 'price',
               existing_type=sa.NUMERIC(precision=12, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_lpg_gas_record', 'total_amount',
               existing_type=sa.NUMERIC(precision=14, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_solar_record', 'quantity',
               existing_type=sa.NUMERIC(precision=10, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=False)
    op.alter_column('maintenance_solar_record', 'price',
               existing_type=sa.NUMERIC(precision=12, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=False)
    op.alter_column('maintenance_solar_record', 'total_amount',
               existing_type=sa.NUMERIC(precision=14, scale=2),
               type_=sa.Numeric(precision=18, scale=2),
               existing_nullable=False)
    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.alter_column('maintenance_solar_record', 'total_amount',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=14, scale=2),
               existing_nullable=False)
    op.alter_column('maintenance_solar_record', 'price',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=12, scale=2),
               existing_nullable=False)
    op.alter_column('maintenance_solar_record', 'quantity',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=10, scale=2),
               existing_nullable=False)
    op.alter_column('maintenance_lpg_gas_record', 'total_amount',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=14, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_lpg_gas_record', 'price',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=12, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_lpg_gas_record', 'kg',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=10, scale=2),
               existing_nullable=False)
    op.alter_column('maintenance_incoming_material', 'discount',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=10, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_incoming_material', 'total_amount',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=14, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_incoming_material', 'rate',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=12, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_incoming_material', 'quantity',
               existing_type=sa.Numeric(precision=18, scale=3),
               type_=sa.NUMERIC(precision=12, scale=3),
               existing_nullable=False)
    op.alter_column('maintenance_diesel_record', 'oil_ltr',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=10, scale=2),
               existing_nullable=True)
    op.alter_column('maintenance_diesel_record', 'diesel_ltr',
               existing_type=sa.Numeric(precision=18, scale=2),
               type_=sa.NUMERIC(precision=10, scale=2),
               existing_nullable=False)
    # ### end Alembic commands ###
