package com.example.slflo import java.math.BigDecimal /** * One scheduled run: push master data, then import orders, invoices, payments and returns. * SLFLO_TOKEN (and optionally SLFLO_BASE) come from the environment here; a real connector * reads them from its encrypted settings. */ fun main() { val settings = ConnectorSettings( baseUrl = System.getenv("SLFLO_BASE") ?: "https://api.slflo.com/api/integration/v1", token = System.getenv("SLFLO_TOKEN") ?: error("Set SLFLO_TOKEN to your token (sfi_live_…)"), ) val api = SlfloClient(settings) val erp = InMemoryErp( customers = listOf(ErpBooks.Customer("CUST-1001", "Al Amal Market", "RETAIL-EGP", BigDecimal("100000"))), items = listOf(ErpBooks.Item("ITEM-1001", "Cola 330ml", "PCS", BigDecimal("10.00"))), ) println("master data: " + MasterDataPushJob(api, erp).run(units = listOf("PCS"), priceList = "RETAIL-EGP")) println("orders: " + OrderImportJob(api, erp).run()) println("invoices: " + InvoiceSeqJob(api, erp).run()) println("payments: " + DocumentImportJob(api, erp, "payments").run()) println("returns: " + DocumentImportJob(api, erp, "returns").run()) }