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_HOLDER" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.cards.models.card_holder.CardHolder"

"id": UUID {constraint: primary_key}
  "display_name": TEXT 
  "external_id": VARCHAR(255) 
  "first_name": TEXT 
  "last_name": TEXT 
  "provider": VARCHAR(255) 
  "short_name": VARCHAR(18) 
  "terminated_at": DATETIME 
}
"cards"."CARD" {
  shape: sql_table
    link: "../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 
}
"cards"."CARD_STATUS_LOG" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.cards.models.card.CardStatusLog"

"id": UUID {constraint: primary_key}
  "card_id": UUID 
  "reason": TEXT 
  "status": VARCHAR(255) 
  "suspension_source": VARCHAR(255) 
}
"transfers"."CARD_PAYMENT" {
  shape: sql_table
    link: "../../transfers/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 
}
"cards"."CARD_ORDER" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.cards.models.card_order.CardOrder"

"id": UUID {constraint: primary_key}
  "card_id": UUID 
  "delivery_status": VARCHAR(255) 
  "shipping_method": VARCHAR(255) 
  "tracking_number": VARCHAR(255) 
}
"cards"."CARD_PROVISIONING" {
  shape: sql_table
    link: "../internals/models/#components.payment_gateway.subcomponents.cards.models.card_provisioning.CardProvisioning"

"id": UUID {constraint: primary_key}
  "card_id": UUID 
  "external_id": VARCHAR(255) 
  "provider": VARCHAR(255) 
  "provisioning_date": DATETIME 
  "provisioning_type": VARCHAR(255) 
  "wallet_provider": VARCHAR 
}
"rules"."EXPENSE_LIMIT_RULE" {
  shape: sql_table
    link: "../../rules/internals/models/#components.payment_gateway.subcomponents.rules.models.expense_limit_rule.ExpenseLimitRule"

"id": UUID {constraint: primary_key}
  "amount": INTEGER 
  "card_id": UUID 
  "criteria": JSONB 
  "currency": VARCHAR(255) 
  "description": TEXT 
  "end": DATETIME 
  "external_id": VARCHAR(255) 
  "first_day": INTEGER 
  "is_active": BOOLEAN 
  "period": VARCHAR(255) 
  "reference": TEXT 
  "start": DATETIME 
  "terminated_at": DATETIME 
}
"cards"."CARD_HOLDER"."id" -> "cards"."CARD"."card_holder_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"accounts"."ACCOUNT"."id" -> "cards"."CARD"."account_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"cards"."CARD"."id" -> "cards"."CARD_STATUS_LOG"."card_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
}
"accounts"."ACCOUNT"."id" -> "transfers"."CARD_PAYMENT"."account_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"cards"."CARD"."id" -> "cards"."CARD_ORDER"."card_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"cards"."CARD"."id" -> "cards"."CARD_PROVISIONING"."card_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"cards"."CARD"."id" -> "rules"."EXPENSE_LIMIT_RULE"."card_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
Hold "Alt" / "Option" to enable pan & zoom