import polars as pl


def run(tb_sap_mara, options, contexts):
    # 산업군/ 자재유형 정보 매핑 (특정 코드 일부만 매핑)

    mtart_mapping = {
        "FERT": "Finished Product (완제품)",
        "HALB": "Semi-Finished Product (반제품)",
        "HAWA": "Trading Goods (상품)",
        "ZSER": "Custom_Type (회사별 커스텀 서비스)",
    }
    meins_mapping = {
        "EA": "Each",
        "ST": "Piece",
        "PC": "Piece",
        "ML": "Milliliter",
        "H": "Hour",
    }
    mbrsh_mapping = {
        "M": "Mechanical Engineering (기계/제조 산업)",
        "P": "Pharmaceuticals (제약 산업)",
        "W": "Wholesale/Retail (도매/소매 산업)",
        "1": "Custom_Type (회사 커스텀 코드)",
        "2": "Custom_Type (회사 커스텀 코드)",
        "3": "Custom_Type (회사 커스텀 코드)",
    }

    result = tb_sap_mara.with_columns(
        [
            pl.col("mtart").replace(mtart_mapping).alias("material_type"),
            pl.col("meins").replace(meins_mapping).alias("material_unit"),
            pl.col("mbrsh").replace(mbrsh_mapping).alias("industry_type"),
        ]
    ).select(
        [
            pl.col("matnr").alias("material_id"),
            pl.col("mtart").alias("material_type_code"),
            pl.col("material_type"),
            pl.col("meins").alias("material_unit_code"),
            pl.col("material_unit"),
            pl.col("mbrsh").alias("industry_type_code"),
            pl.col("industry_type"),
        ]
    )

    return {"tb_mara_info": result}
