import {z} from 'zod' export type B035OrganizationProfitRequest = {organization_id?: string | undefined, duration_type?: string | undefined, duration?: string | undefined}; export type CreateApiSynapseOrganizationProfitArgs = {body: B035OrganizationProfitRequest}; export type CreateApiSynapseOrganizationProfitOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const b035OrganizationProfitFreeCashFlow = z.object({free_cf: z.number().optional(), free_cf_yield: z.number().optional(), free_cf_growth: z.number().optional()}); export const b035OrganizationProfitCapitalExpenditures = z.object({capex: z.number().optional(), capex_growth: z.number().optional()}); export const b035OrganizationProfitNetFinancingCashFlow = z.object({net_financing_cf: z.number().optional(), net_financing_cf_growth: z.number().optional()}); export const b035OrganizationProfitNetInvestingCashFlow = z.object({net_investing_cf: z.number().optional(), net_investing_cf_growth: z.number().optional()}); export const b035OrganizationProfitNetOperatingCashFlow = z.object({net_oper_cf: z.number().optional(), net_oper_cf_growth: z.number().optional(), net_oper_cf_return_on_invest: z.number().optional()}); export const b035OrganizationProfitCashFlow = z.object({year: z.number().int().optional(), currency_code: z.string().optional(), free_cash_flow: b035OrganizationProfitFreeCashFlow.optional(), capital_expenditures: b035OrganizationProfitCapitalExpenditures.optional(), net_financing_cash_flow: b035OrganizationProfitNetFinancingCashFlow.optional(), net_investing_cash_flow: b035OrganizationProfitNetInvestingCashFlow.optional(), net_operating_cash_flow: b035OrganizationProfitNetOperatingCashFlow.optional()}); export const b035OrganizationProfitCashSt = z.object({cash_st: z.number().optional(), cash_st_growth: z.number().optional(), cash_st_assets_ratio: z.number().optional()}); export const b035OrganizationProfitNetDebt = z.object({net_debt: z.number().optional(), net_debt_growth: z.number().optional(), net_debt_equity_ratio: z.number().optional()}); export const b035OrganizationProfitTotalDebt = z.object({debt: z.number().optional(), debt_growth: z.number().optional(), debt_equity_ratio: z.number().optional(), debt_asserts_ratio: z.number().optional()}); export const b035OrganizationProfitTotalAssets = z.object({assets: z.number().optional(), assets_growth: z.number().optional(), assets_turnover: z.number().optional(), return_on_assets: z.number().optional()}); export const b035OrganizationProfitTotalLiabilities = z.object({liabs: z.number().optional(), liabs_growth: z.number().optional()}); export const b035OrganizationProfitTotalShareholdersEquity = z.object({shldrs_equity: z.number().optional(), return_on_equity: z.number().optional(), shldrs_equity_assets_ratio: z.number().optional()}); export const b035OrganizationProfitBalanceSheet = z.object({year: z.number().int().optional(), cash_st: b035OrganizationProfitCashSt.optional(), net_debt: b035OrganizationProfitNetDebt.optional(), total_debt: b035OrganizationProfitTotalDebt.optional(), total_assets: b035OrganizationProfitTotalAssets.optional(), currency_code: z.string().optional(), total_liabilities: b035OrganizationProfitTotalLiabilities.optional(), total_shareholders_equity: b035OrganizationProfitTotalShareholdersEquity.optional()}); export const b035OrganizationProfitRevenueValue = z.object({year: z.number().int().optional(), revenue: z.number().optional(), net_margin: z.number().optional(), gross_margin: z.number().optional(), currency_code: z.string().optional()}); export const b035OrganizationProfitEbit = z.object({ebit: z.number().optional(), ebit_growth: z.number().optional(), ebit_margin: z.number().optional()}); export const b035OrganizationProfitSales = z.object({sales: z.number().optional(), sale_growth: z.number().optional()}); export const b035OrganizationProfitEbitda = z.object({ebitda: z.number().optional(), ebitda_growth: z.number().optional(), ebitda_margin: z.number().optional()}); export const b035OrganizationProfitNetIncome = z.object({net_income: z.number().optional(), net_income_growth: z.number().optional(), net_income_margin: z.number().optional()}); export const b035OrganizationProfitGrossIncome = z.object({gross_inc: z.number().optional(), gross_margin: z.number().optional(), gross_inc_growth: z.number().optional()}); export const b035OrganizationProfitIncomeStatement = z.object({ebit: b035OrganizationProfitEbit.optional(), year: z.number().int().optional(), sales: b035OrganizationProfitSales.optional(), ebitda: b035OrganizationProfitEbitda.optional(), net_income: b035OrganizationProfitNetIncome.optional(), gross_income: b035OrganizationProfitGrossIncome.optional(), currency_code: z.string().optional()}); export const b035OrganizationProfitProfitValue = z.object({year: z.number().int().optional(), market_val: z.number().optional(), currency_code: z.string().optional()}); export const b035OrganizationProfitGetOrganizationProfitResponseDto = z.object({revenue: z.number().optional(), unix_date: z.number().int().optional(), cash_flows: z.array(b035OrganizationProfitCashFlow).optional(), market_val: z.number().optional(), currency_code: z.string().optional(), balance_sheets: z.array(b035OrganizationProfitBalanceSheet).optional(), revenue_detail: z.array(b035OrganizationProfitRevenueValue).optional(), income_statements: z.array(b035OrganizationProfitIncomeStatement).optional(), market_val_detail: z.array(b035OrganizationProfitProfitValue).optional()}); export const b035OrganizationProfitResponse = z.object({data: b035OrganizationProfitGetOrganizationProfitResponseDto.optional(), status: z.boolean(), error_msg: z.string().optional(), error_code: z.number().int()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * B035 Organization profit * * POST /synapse/organization/profit */ export const createApiSynapseOrganizationProfit = async (args: CreateApiSynapseOrganizationProfitArgs, options?: CreateApiSynapseOrganizationProfitOptions) => { const {baseUrl = "https://connect.patsnap.com", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/synapse/organization/profit${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(b035OrganizationProfitResponse, await res.json()) };