@startuml hide circle skinparam linetype ortho set separator none entity "**accounts**" { + ""account_id"": //serial [PK]// -- *""email"": //text // *""verified"": //boolean // *""user_id"": //text [FK]// } entity "**accounts_page_platform_order_indexes**" { + ""account_id"": //integer [PK]// + ""platform"": //platform [PK]// -- *""account_id"": //integer // *""order_index"": //smallint // } 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]// + ""event_timestamp"": //timestamp with time zone [PK]// + ""event_id"": //text [PK]// -- *""platform"": //text [FK]// } entity "**etsy_users**" { + ""user_id"": //integer [PK]// -- *""account_id"": //integer [FK]// *""shop_id"": //integer // } 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 // *""id_token_custom_claims_name"": //text // *""id_token_custom_claims_picture"": //text // *""id_token_custom_claims_nickname"": //text // *""id_token_custom_claims_given_name"": //text // *""id_token_custom_claims_family_name"": //text // *""id_token_custom_claims_updated_at"": //timestamp with time zone // } 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]// + ""event_timestamp"": //timestamp with time zone [PK]// + ""event_id"": //text [PK]// -- *""platform"": //text [FK]// } entity "**wix_store_events**" { + ""store_id"": //text [PK]// + ""event_timestamp"": //timestamp with time zone [PK]// + ""event_id"": //text [PK]// -- *""platform"": //text [FK]// } "**accounts**" }-- "**oauth_users**" "**etsy_access_tokens**" ||-|| "**etsy_users**" "**etsy_oauth_requests**" }-- "**accounts**" "**etsy_store_events**" }-- "**raw_store_events**" "**etsy_users**" }-- "**accounts**" "**oauth_tokens**" }-- "**oauth_users**" "**sync_group_listing_drafts**" }-- "**accounts**" "**sync_group_listings**" }-- "**sync_groups**" "**sync_groups**" }-- "**accounts**" "**tiktok_store_events**" }-- "**raw_store_events**" "**wix_store_events**" }-- "**raw_store_events**" @enduml