POSITION_HEADERS = [ "Client Name", "Fund Name", "Counterparty", "AccountNumber", "COB Date", "SecurityDescription", "Prime Broker", "Product Type", "Unique Deal ID", "TransactionIndicator (Buy/Sell)", "PutCall Indicator (Call/Put)", "CapFloorIndicator", "CurrencyPair", "DealCurrencyA", "DealCurrencyB", "NotionalA", "NotionalB", "OriginalPrice", "Strike", "FixedRate", "Quantity", "Start Date", "Effective Date", "Maturity Date", "Underlying Maturity", "RecPayFixed", "Underlying (ISIN / CUSP / RED CODES)", "Underlying Desc", "Exercise Type", "MTM Currency", "MTM Valuation", "MarketPrice", "COB Date", "Clearing House Name", ] BOWDST_POSITION_HEADERS = [ "Client Name", "Fund Name", "Counterparty", "Product Type", "Unique Deal ID", "TransactionIndicator (Buy/Sell)", "PutCall Indicator (Call/Put)", "CapFloorIndicator", "CurrencyPair", "DealCurrencyA", "DealCurrencyB", "NotionalA", "NotionalB", "OriginalPrice", "Strike", "FixedRate", "Quantity", "Start Date", "Effective Date", "Maturity Date", "Underlying Maturity", "RecPayFixed", "Underlying (ISIN / CUSP / RED CODES)", "Underlying Desc", "Exercise Type", "MTM Currency", "MTM Valuation", "COB Date", "Clearing House Name", "MarketPrice", "AccountNumber", "SecurityDescription", "Prime Broker", ] BNY_SECURITY_HEADER = [ "Function of the Message", "Trade Type", "Account No", "Trade Date", "Settlement Date", "Broker ID", "Clearer ID", "Price", "Asset Type", "Currency", "Local Cost", "Commission", "Broker Account", "SEC Fee", "Other Charges", "Principal", "Interest", "Final Money", "Security Id", "Security Description", "Maturity Date", "Issue Date", "Current Rate", "Safekeeping place", "Settlement Place", "Reference", "Stamp Duty", "Original Face", "FX Execute", "Buy/Sell Currency", "FX Special", "Market", "Special Instruction", "Block Detail Counter", "Related Reference", "Deliver To Account", "Quantity", "Pool Number", "Factor", "ADEL Date", "Taxes", "Settlement Method", "Security Id Type", "Investor", "Broker ID Type", "Broker Description", "Clearer ID Type", "Clearer Description", "Clearer Account", "Custodian ID Type", "Custodian ID", "Custodian Description", "Custodian Account", "Base Cost", "Base Currency", "Local Currency", "Change Owner/Reg", "Settlement Indicator", "Italian Tax Id", "Settlement Transaction Indicator", "Sub-Custodian Special Inst", "Inventory Book", "Manual Broker Description Flag Book", "Manual Broker Description", "IIJ Number", "Tracking Indicator", "Tax Code", "Tax Code - Deliver", "Tax Code - Receive", "Current Face Quantity", "Accounting Description Line 1", "Accounting Description Line 2", "Accounting Description Receive Line 1", "Accounting Description Receive Line 2", "Trade Condition Indicator", "Deal Reference", "Common Trade Reference", "Place of Trade", "Place of Trade Narrative", "Research Fee", ] BNY_REPO_HEADER = [ "Function of Message", "Trade Type", "Account", "Transaction Type", "Trade Date", "Settlement Date", "Reference", "Final Money", "Currency", "FX Details", "Market", "Settlement Method", "Settlement Place", "Place of Safekeeping", "Broker ID Type", "Broker ID", "Broker Description", "Broker Account", "Clearer ID Type", "Clearer ID", "Clearer Description", "Clearer Account", "Change Owner/Reg", "Settlement Indicator", "Italian Tax Id", "Stamp Duty", "Maturity Date", "Call Delay", "Rate Type", "Repo Rate", "Forfeit Amount", "Repo Index", "Computation Method", "Accrued Interest", "Deal Amount", "Premium Amount", "Repurchase Amount", "Legal Framework", "Repo Reference", "Closing Leg Reference", "Collateral Count", "Security Id Type", "Security Id", "Security Description", "Face/Unit Amount", "Special Instruction", "Sub-Custodian Special Inst", "Repo Special Inst", "Related Reference", "Principal Amount", "Maturity Amount", "Tri Party Repo Type", "Custodian ID Type", "Custodian ID", "Custodian Description", "Custodian Account", "Place Of Trade", "Place Of Trade Narrative", ] BNY_CLS_HEADER = [ "Trade Type", "Account", "Trade Date", "Value Date", "Buy Currency", "Buy Amount", "Sell Currency", "Sell Amount", "Traded Currency", "Reference", "Related Reference", "Fund Manager Type", "Fund Manager ID", "Fund manager Description", "Fund Manager Add ID Type", "Fund Manager Add ID", "Executing Broker Type", "Executing Broker ID", "Executing Broker Description", "Executing Broker Add ID Type", "Executing Broker Add ID", "Receive Delivery Agent Type", "Receive Delivery Agent ID", "Receive Delivery Agent Description", "Receive Delivery Agent Add ID Type", "Receive Delivery Agent Add ID", "Receive Intermediary Type", "Receive Intermediary ID", "Receive Intermediary Description", "Receive Intermediary Add ID Type", "Receive Intermediary Add ID", "Receive Payment Receiving Agent Type", "Receive Payment Receiving Agent ID", "Receive Payment Receiving Agent Description", "Receive Payment Receiving Agent Add ID Type", "Receive Payment Receiving Agent Add ID", "Delivery Receiving Agent Type", "Delivery Receiving Agent ID", "Delivery Receiving Agent Description", "Delivery Receiving Agent Add ID Type", "Delivery Receiving Agent Add ID", "Delivery Beneficiary Bank Type", "Delivery Beneficiary Bank ID", "Delivery Beneficiary Bank Description", "Delivery Beneficiary Bank Add ID Type", "Delivery Beneficiary Bank Add ID", "Delivery Payment Delivery Agent Type", "Delivery Payment Delivery Agent ID", "Delivery Payment Delivery Agent Description", "Delivery Payment Delivery Agent Add ID Type", "Delivery Payment Delivery Agent Add ID", "Delivery Intermediary Type", "Delivery Intermediary ID", "Delivery Intermediary Description", "Delivery Intermediary Add ID Type", "Delivery Intermediary Add ID", "Sender to Receiver Line Type -1", "Sender to Receiver Line Description -1", "Sender to Receiver Line Type -2", "Sender to Receiver Line Description -2", "Sender to Receiver Line Type -3", "Sender to Receiver Line Description -3", "Sender to Receiver Line Type -4", "Sender to Receiver Line Description -4", "Sender to Receiver Line Type -5", "Sender to Receiver Line Description -5", "Sender to Receiver Line Type -6", "Sender to Receiver Line Description -6", "Function of the Message", "IIJ Number", "Settlement Currency", "Settlement Amount", "Settlement Reference", "Gain/Loss Flag", "Fixing Date", "Settlement Receiving Agent Type", "Settlement Receiving Agent ID", "Settlement Receiving Agent Description", "Settlement Receiving Agent Add ID Type", "Settlement Receiving Agent Add ID", "Settlement Beneficiary Bank Type", "Settlement Beneficiary Bank ID", "Settlement Beneficiary Bank Description", "Settlement Beneficiary Bank Add ID Type", "Settlement Beneficiary Bank Add ID", "Settlement Delivery Agent Type", "Settlement Delivery Agent ID", "Settlement Delivery Agent Description", "Settlement Delivery Agent Add ID Type", "Settlement Delivery Agent Add ID", "Settlement Intermediary Type", "Settlement Intermediary ID", "Settlement Intermediary Description", "Settlement Intermediary Add ID Type", "Settlement Intermediary Add ID", "Payment Clearing Centre", "Fund Manager Clearing Code Type", "Fund Manager Clearing Code", "Fund Manager Tax Code", "Fund Manager Legal Entity", "Executing Broker Clearing Code Type", "Executing Broker Clearing Code", "Executing Broker Tax Code", "Executing Broker Legal Entity", "Receive Delivery Agent Clearing Code Type", "Receive Delivery Agent Clearing Code", "Receive Delivery Agent Tax Code", "Receive Delivery Agent Legal Entity", "Receive Delivery Agent No Settlement Instruction", "Receive Intermediary Clearing Code Type", "Receive Intermediary Clearing Code", "Receive Intermediary Tax Code", "Receive Intermediary Legal Entity", "Receive Payment Receiving Agent Clearing Code Type", "Receive Payment Receiving Agent Clearing Code", "Receive Payment Receiving Agent Tax Code", "Receive Payment Receiving Agent Legal Entity", "Delivery Receiving Agent Clearing Code Type", "Delivery Receiving Agent Clearing Code", "Delivery Receiving Agent Tax Code", "Delivery Receiving Agent Legal Entity", "Delivery Receiving Agent No Settlement Instruction", "Delivery Beneficiary Bank Clearing Code Type", "Delivery Beneficiary Bank Clearing Code", "Delivery Beneficiary Bank Tax Code", "Delivery Beneficiary Bank Legal Entity", "Delivery Payment Delivery Agent Clearing Code Type", "Delivery Payment Delivery Agent Clearing Code", "Delivery Payment Delivery Agent Tax Code", "Delivery Payment Delivery Agent Legal Entity", "Delivery Intermediary Clearing Code Type", "Delivery Intermediary Clearing Code", "Delivery Intermediary Tax Code", "Delivery Intermediary Legal Entity", "Comments", "Status", "Template Name", "Trans Number", "Creator", "File ID", "Authorizer", "Timestamp", "Audit Trail", "Account Name", ] def get_position_headers(fund): match fund: case "BOWDST": return BOWDST_POSITION_HEADERS case _: return POSITION_HEADERS def get_bny_headers(trade_type): match trade_type: case "repo": return BNY_REPO_HEADER case "spot": return BNY_CLS_HEADER case "bond" | "stock": return BNY_SECURITY_HEADER