@startuml hide circle skinparam linetype ortho entity "**accounts**" { + ""account_id"": //serial [PK]// -- *""email"": //text // *""verified"": //boolean // *""user_id"": //text [FK]// } entity "**etsy_access_tokens**" { + ""user_id"": //integer [PK][FK]// -- *""access_token"": //text // *""refresh_token"": //text // *""access_token_expiration"": //timestamp with time zone // *""refresh_token_expiration"": //timestamp with time zone // } entity "**etsy_oauth_requests**" { + ""state"": //bytea [PK]// -- *""code_verifier"": //bytea // *""expiration"": //timestamp with time zone // *""account_id"": //integer [FK]// } entity "**etsy_store_events**" { + ""store_id"": //text [PK][FK]// + ""event_timestamp"": //timestamp with time zone [PK][FK]// + ""event_id"": //text [PK][FK]// -- *""platform"": //text [FK]// } entity "**etsy_users**" { + ""user_id"": //integer [PK]// -- *""account_id"": //integer [FK]// *""shop_id"": //integer // } entity "**mock_accounts**" { + ""account_id"": //serial [PK]// -- *""user_id"": //text [FK]// } entity "**mock_store_amazon**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_big_cartel**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_ebay**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_ecwid**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_shopify**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_square_online**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_squarespace**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_tiktok**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_walmart_marketplace**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_wix**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_woo_commerce**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_store_zoho**" { + ""store_id"": //text [PK]// -- *""user_id"": //text [FK]// *""account_id"": //integer [FK]// *""name"": //text // } entity "**mock_sync_group_listings**" { + ""sync_group_id"": //integer [PK][FK]// + ""order_index"": //integer [PK]// -- *""platform"": //platform // *""shop_id"": //text // *""listing_id"": //text // } entity "**mock_sync_groups**" { + ""sync_group_id"": //serial [PK]// -- *""account_id"": //integer [FK]// } entity "**oauth_login_states**" { + ""state"": //bytea [PK]// -- *""expiration"": //timestamp with time zone // *""target_uri"": //text // } entity "**oauth_tokens**" { + ""access_token"": //text [PK]// -- *""token_type"": //text // *""refresh_token"": //text // *""expiry"": //timestamp with time zone // *""id_token_issuer"": //text // *""id_token_audience"": //text[] // *""id_token_subject"": //text [FK]// *""id_token_expiry"": //timestamp with time zone // *""id_token_issued_at"": //timestamp with time zone // *""id_token_nonce"": //text // *""id_token_access_token_hash"": //text // *""claims"": //jsonb // } entity "**oauth_users**" { + ""user_id"": //text [PK]// -- } entity "**raw_store_events**" { + ""platform"": //text [PK]// + ""store_id"": //text [PK]// + ""event_timestamp"": //timestamp with time zone [PK]// + ""event_id"": //text [PK]// -- *""raw_payload"": //jsonb // } entity "**schema_migrations**" { + ""version"": //bigint [PK]// -- *""dirty"": //boolean // } entity "**sync_group_listing_drafts**" { + ""account_id"": //integer [PK][FK]// + ""order_index"": //integer [PK]// -- ""platform"": //platform // ""shop_id"": //text // ""listing_id"": //text // } entity "**sync_group_listings**" { + ""sync_group_id"": //integer [PK][FK]// + ""order_index"": //integer [PK]// -- *""platform"": //platform // *""shop_id"": //text // *""listing_id"": //text // } entity "**sync_groups**" { + ""sync_group_id"": //serial [PK]// -- *""account_id"": //integer [FK]// } entity "**tiktok_store_events**" { + ""store_id"": //text [PK][FK]// + ""event_timestamp"": //timestamp with time zone [PK][FK]// + ""event_id"": //text [PK][FK]// -- *""platform"": //text [FK]// } entity "**wix_store_events**" { + ""store_id"": //text [PK][FK]// + ""event_timestamp"": //timestamp with time zone [PK][FK]// + ""event_id"": //text [PK][FK]// -- *""platform"": //text [FK]// } "**accounts**" }-- "**oauth_users**" "**etsy_access_tokens**" ||-|| "**etsy_users**" "**etsy_oauth_requests**" }-- "**accounts**" "**etsy_store_events**" }-- "**raw_store_events**" "**etsy_store_events**" }-- "**raw_store_events**" "**etsy_store_events**" }-- "**raw_store_events**" "**etsy_store_events**" }-- "**raw_store_events**" "**etsy_users**" }-- "**accounts**" "**mock_accounts**" }-- "**oauth_users**" "**mock_accounts**" }-- "**oauth_users**" "**mock_store_amazon**" }-- "**mock_accounts**" "**mock_store_amazon**" }-- "**mock_accounts**" "**mock_store_amazon**" }-- "**mock_accounts**" "**mock_store_amazon**" }-- "**mock_accounts**" "**mock_store_amazon**" }-- "**mock_accounts**" "**mock_store_amazon**" }-- "**mock_accounts**" "**mock_store_amazon**" }-- "**oauth_users**" "**mock_store_big_cartel**" }-- "**mock_accounts**" "**mock_store_big_cartel**" }-- "**mock_accounts**" "**mock_store_big_cartel**" }-- "**mock_accounts**" "**mock_store_big_cartel**" }-- "**mock_accounts**" "**mock_store_big_cartel**" }-- "**mock_accounts**" "**mock_store_big_cartel**" }-- "**mock_accounts**" "**mock_store_big_cartel**" }-- "**oauth_users**" "**mock_store_ebay**" }-- "**mock_accounts**" "**mock_store_ebay**" }-- "**mock_accounts**" "**mock_store_ebay**" }-- "**mock_accounts**" "**mock_store_ebay**" }-- "**mock_accounts**" "**mock_store_ebay**" }-- "**mock_accounts**" "**mock_store_ebay**" }-- "**mock_accounts**" "**mock_store_ebay**" }-- "**oauth_users**" "**mock_store_ecwid**" }-- "**mock_accounts**" "**mock_store_ecwid**" }-- "**mock_accounts**" "**mock_store_ecwid**" }-- "**mock_accounts**" "**mock_store_ecwid**" }-- "**mock_accounts**" "**mock_store_ecwid**" }-- "**mock_accounts**" "**mock_store_ecwid**" }-- "**mock_accounts**" "**mock_store_ecwid**" }-- "**oauth_users**" "**mock_store_shopify**" }-- "**mock_accounts**" "**mock_store_shopify**" }-- "**mock_accounts**" "**mock_store_shopify**" }-- "**mock_accounts**" "**mock_store_shopify**" }-- "**mock_accounts**" "**mock_store_shopify**" }-- "**mock_accounts**" "**mock_store_shopify**" }-- "**mock_accounts**" "**mock_store_shopify**" }-- "**oauth_users**" "**mock_store_square_online**" }-- "**mock_accounts**" "**mock_store_square_online**" }-- "**mock_accounts**" "**mock_store_square_online**" }-- "**mock_accounts**" "**mock_store_square_online**" }-- "**mock_accounts**" "**mock_store_square_online**" }-- "**mock_accounts**" "**mock_store_square_online**" }-- "**mock_accounts**" "**mock_store_square_online**" }-- "**oauth_users**" "**mock_store_squarespace**" }-- "**mock_accounts**" "**mock_store_squarespace**" }-- "**mock_accounts**" "**mock_store_squarespace**" }-- "**mock_accounts**" "**mock_store_squarespace**" }-- "**mock_accounts**" "**mock_store_squarespace**" }-- "**mock_accounts**" "**mock_store_squarespace**" }-- "**mock_accounts**" "**mock_store_squarespace**" }-- "**oauth_users**" "**mock_store_tiktok**" }-- "**mock_accounts**" "**mock_store_tiktok**" }-- "**mock_accounts**" "**mock_store_tiktok**" }-- "**mock_accounts**" "**mock_store_tiktok**" }-- "**mock_accounts**" "**mock_store_tiktok**" }-- "**mock_accounts**" "**mock_store_tiktok**" }-- "**mock_accounts**" "**mock_store_tiktok**" }-- "**oauth_users**" "**mock_store_walmart_marketplace**" }-- "**mock_accounts**" "**mock_store_walmart_marketplace**" }-- "**mock_accounts**" "**mock_store_walmart_marketplace**" }-- "**mock_accounts**" "**mock_store_walmart_marketplace**" }-- "**mock_accounts**" "**mock_store_walmart_marketplace**" }-- "**mock_accounts**" "**mock_store_walmart_marketplace**" }-- "**mock_accounts**" "**mock_store_walmart_marketplace**" }-- "**oauth_users**" "**mock_store_wix**" }-- "**mock_accounts**" "**mock_store_wix**" }-- "**mock_accounts**" "**mock_store_wix**" }-- "**mock_accounts**" "**mock_store_wix**" }-- "**mock_accounts**" "**mock_store_wix**" }-- "**mock_accounts**" "**mock_store_wix**" }-- "**mock_accounts**" "**mock_store_wix**" }-- "**oauth_users**" "**mock_store_woo_commerce**" }-- "**mock_accounts**" "**mock_store_woo_commerce**" }-- "**mock_accounts**" "**mock_store_woo_commerce**" }-- "**mock_accounts**" "**mock_store_woo_commerce**" }-- "**mock_accounts**" "**mock_store_woo_commerce**" }-- "**mock_accounts**" "**mock_store_woo_commerce**" }-- "**mock_accounts**" "**mock_store_woo_commerce**" }-- "**oauth_users**" "**mock_store_zoho**" }-- "**mock_accounts**" "**mock_store_zoho**" }-- "**mock_accounts**" "**mock_store_zoho**" }-- "**mock_accounts**" "**mock_store_zoho**" }-- "**mock_accounts**" "**mock_store_zoho**" }-- "**mock_accounts**" "**mock_store_zoho**" }-- "**mock_accounts**" "**mock_store_zoho**" }-- "**oauth_users**" "**mock_sync_group_listings**" }-- "**mock_sync_groups**" "**mock_sync_groups**" }-- "**mock_accounts**" "**mock_sync_groups**" }-- "**mock_accounts**" "**oauth_tokens**" }-- "**oauth_users**" "**sync_group_listing_drafts**" }-- "**accounts**" "**sync_group_listing_drafts**" }-- "**accounts**" "**sync_group_listings**" }-- "**sync_groups**" "**sync_group_listings**" }-- "**sync_groups**" "**sync_groups**" }-- "**accounts**" "**tiktok_store_events**" }-- "**raw_store_events**" "**tiktok_store_events**" }-- "**raw_store_events**" "**tiktok_store_events**" }-- "**raw_store_events**" "**tiktok_store_events**" }-- "**raw_store_events**" "**wix_store_events**" }-- "**raw_store_events**" "**wix_store_events**" }-- "**raw_store_events**" "**wix_store_events**" }-- "**raw_store_events**" "**wix_store_events**" }-- "**raw_store_events**" @enduml