Data model

"accounts"."ACCOUNT" {
  shape: sql_table
    link: "../../accounts/internals/models/#components.payment_gateway.subcomponents.accounts.models.account.Account"

"id": UUID {constraint: primary_key}
  "account_holder_id": UUID 
  "description": TEXT 
  "external_id": VARCHAR(255) 
  "provider": VARCHAR(255) 
  "reference": TEXT 
  "terminated_at": DATETIME 
}
"cards"."CARD" {
  shape: sql_table
    link: "../../cards/internals/models/#components.payment_gateway.subcomponents.cards.models.card.Card"

"id": UUID {constraint: primary_key}
  "account_id": UUID 
  "card_holder_id": UUID 
  "description": TEXT 
  "display_name": TEXT 
  "expiration_date": DATE 
  "external_id": VARCHAR(255) 
  "is_virtual": BOOLEAN 
  "issuance_reason": TEXT 
  "issued_at": DATETIME 
  "last_four_digits": VARCHAR(4) 
  "provider": VARCHAR(255) 
  "reference": TEXT 
  "terminated_at": DATETIME 
}
"transfers"."TRANSFER_EVENT" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.transfer_event.TransferEvent"

"id": UUID {constraint: primary_key}
  "balance": INTEGER 
  "effective_date": DATETIME 
  "external_id": VARCHAR(255) 
  "provider": VARCHAR(255) 
  "raw": JSONB 
  "received": INTEGER 
  "reserved": INTEGER 
  "status": VARCHAR 
}
"transfers"."TRANSFER_HISTORY" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.transfer_history.TransferHistory"

"id": UUID {constraint: primary_key}
  "private_ref": VARCHAR(255) 
  "private_type": VARCHAR(255) 
}
"transfers"."TRANSFER_UPDATE" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.transfer_update.TransferUpdate"

"id": UUID {constraint: primary_key}
  "amount": INTEGER 
  "currency": VARCHAR(3) 
  "direction": VARCHAR(255) 
  "external_transaction_id": VARCHAR(255) 
  "external_transfer_id": VARCHAR(255) 
  "occurred_at": DATETIME 
  "provider": VARCHAR(255) 
  "raw": JSONB 
  "sequence_number": INTEGER 
  "status": VARCHAR 
  "transfer_id": UUID 
  "transfer_type": VARCHAR(255) 
}
"transfers"."ACCOUNT_TRANSFER_TRANSFER_EVENT_ASSOCIATION" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.account_transfer.AccountTransferTransferEventAssociation"

"id": UUID {constraint: primary_key}
  "account_transfer_id": UUID 
  "sequence": INTEGER 
  "transfer_event_id": UUID 
}
"transfers"."ACCOUNT_TRANSFER" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.account_transfer.AccountTransfer"

"id": UUID {constraint: primary_key}
  "account_id": UUID 
  "direction": VARCHAR(255) 
  "effective_date": DATETIME 
  "external_id": VARCHAR(255) 
  "provider": VARCHAR(255) 
  "raw": JSONB 
  "reference": VARCHAR(255) 
  "transfer_history_id": UUID 
}
"accounts"."SEPA_BENEFICIARY" {
  shape: sql_table
    link: "../../accounts/internals/models/#components.payment_gateway.subcomponents.accounts.models.sepa_beneficiary.SepaBeneficiary"

"id": UUID {constraint: primary_key}
  "account_id": UUID 
  "external_id": VARCHAR(255) 
  "iban": VARCHAR(34) 
  "issued_at": DATETIME 
  "name": VARCHAR(255) 
  "provider": VARCHAR(255) 
}
"banking_documents"."SEPA_MANDATE" {
  shape: sql_table
    link: "../../banking_documents/internals/models/#components.payment_gateway.subcomponents.banking_documents.models.sepa_mandate.SepaMandate"

"id": UUID {constraint: primary_key}
  "account_holder_id": UUID 
  "debtor_country": VARCHAR(3) 
  "debtor_iban": VARCHAR(34) 
  "debtor_name": VARCHAR(255) 
  "external_id": VARCHAR(255) 
  "issued_at": DATETIME 
  "provider": VARCHAR(255) 
  "sepa_creditor_identifier": VARCHAR(255) 
  "unique_mandate_reference": VARCHAR(255) 
}
"transfers"."BANK_TRANSFER_TRANSFER_EVENT_ASSOCIATION" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.bank_transfer.BankTransferTransferEventAssociation"

"id": UUID {constraint: primary_key}
  "bank_transfer_id": UUID 
  "sequence": INTEGER 
  "transfer_event_id": UUID 
}
"transfers"."BANK_TRANSFER" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.bank_transfer.BankTransfer"

"id": UUID {constraint: primary_key}
  "account_id": UUID 
  "direction": VARCHAR(255) 
  "effective_date": DATETIME 
  "external_id": VARCHAR(255) 
  "provider": VARCHAR(255) 
  "raw": JSONB 
  "sepa_beneficiary_id": UUID 
  "sepa_mandate_id": UUID 
  "transfer_history_id": UUID 
}
"transfers"."CARD_PAYMENT_TRANSFER_EVENT_ASSOCIATION" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.card_transfer.CardTransferTransferEventAssociation"

"id": UUID {constraint: primary_key}
  "card_payment_id": UUID 
  "sequence": INTEGER 
  "transfer_event_id": UUID 
}
"transfers"."CARD_PAYMENT" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.card_transfer.CardTransfer"

"id": UUID {constraint: primary_key}
  "account_id": UUID 
  "card_id": UUID 
  "city": VARCHAR(255) 
  "country": VARCHAR(255) 
  "effective_date": DATETIME 
  "external_id": VARCHAR(255) 
  "mcc": VARCHAR(10) 
  "merchant_id": VARCHAR(255) 
  "name": VARCHAR(255) 
  "postal_code": VARCHAR(255) 
  "provider": VARCHAR(255) 
  "raw": JSONB 
  "transfer_history_id": UUID 
}
"transfers"."INTERNAL_TRANSFER" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.transfers.models.internal_transfer.InternalTransfer"

"id": UUID {constraint: primary_key}
  "amount": INTEGER 
  "description": TEXT 
  "effective_date": DATETIME 
  "reference": VARCHAR 
  "transfer_history_id": UUID 
}
"accounts"."ACCOUNT"."id" -> "cards"."CARD"."account_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"transfers"."ACCOUNT_TRANSFER"."id" -> "transfers"."ACCOUNT_TRANSFER_TRANSFER_EVENT_ASSOCIATION"."account_transfer_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"transfers"."TRANSFER_EVENT"."id" -> "transfers"."ACCOUNT_TRANSFER_TRANSFER_EVENT_ASSOCIATION"."transfer_event_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-one-required
}
"transfers"."TRANSFER_HISTORY"."id" -> "transfers"."ACCOUNT_TRANSFER"."transfer_history_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"accounts"."ACCOUNT"."id" -> "transfers"."ACCOUNT_TRANSFER"."account_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"accounts"."ACCOUNT"."id" -> "accounts"."SEPA_BENEFICIARY"."account_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"transfers"."TRANSFER_EVENT"."id" -> "transfers"."BANK_TRANSFER_TRANSFER_EVENT_ASSOCIATION"."transfer_event_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-one-required
}
"transfers"."BANK_TRANSFER"."id" -> "transfers"."BANK_TRANSFER_TRANSFER_EVENT_ASSOCIATION"."bank_transfer_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"accounts"."ACCOUNT"."id" -> "transfers"."BANK_TRANSFER"."account_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"banking_documents"."SEPA_MANDATE"."id" -> "transfers"."BANK_TRANSFER"."sepa_mandate_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"transfers"."TRANSFER_HISTORY"."id" -> "transfers"."BANK_TRANSFER"."transfer_history_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"accounts"."SEPA_BENEFICIARY"."id" -> "transfers"."BANK_TRANSFER"."sepa_beneficiary_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"transfers"."TRANSFER_EVENT"."id" -> "transfers"."CARD_PAYMENT_TRANSFER_EVENT_ASSOCIATION"."transfer_event_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-one-required
}
"transfers"."CARD_PAYMENT"."id" -> "transfers"."CARD_PAYMENT_TRANSFER_EVENT_ASSOCIATION"."card_payment_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"cards"."CARD"."id" -> "transfers"."CARD_PAYMENT"."card_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"transfers"."TRANSFER_HISTORY"."id" -> "transfers"."CARD_PAYMENT"."transfer_history_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"accounts"."ACCOUNT"."id" -> "transfers"."CARD_PAYMENT"."account_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"transfers"."TRANSFER_HISTORY"."id" -> "transfers"."INTERNAL_TRANSFER"."transfer_history_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
Hold "Alt" / "Option" to enable pan & zoom