Data model

"CLINIC_USER" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "app_id": VARCHAR(255) 
  "app_user_id": VARCHAR(255) 
  "consent_given_at": DATETIME 
  "last_mobile_version": VARCHAR 
  "ordoclic_id": VARCHAR(255) 
  "stripe_customer_id": VARCHAR(255) 
}
"MEDICAL_ADMIN" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "access_types": ARRAY 
  "accessible_conversation_specialties": ARRAY 
  "address": VARCHAR 
  "answers_to_proactive_conversation_topics": ARRAY 
  "apps_displayed_in": ARRAY 
  "are_data_alerts_enabled": BOOLEAN 
  "assurance_maladie_number": VARCHAR 
  "availability_status": VARCHAR(255) 
  "chat_google_calendar_id": VARCHAR(255) 
  "clinic_role": VARCHAR(255) 
  "clinic_user_id": UUID 
  "contract_google_drive_folder_id": VARCHAR 
  "country": VARCHAR(255) 
  "dato_id": TEXT 
  "deleted_at": DATETIME 
  "first_name": VARCHAR 
  "gender": VARCHAR(255) 
  "has_access_to_app_ids": ARRAY 
  "iban": VARCHAR 
  "invoice_google_drive_folder_id": VARCHAR 
  "is_clinic_coordinator_for_app_ids": ARRAY 
  "languages": ARRAY 
  "last_name": VARCHAR 
  "medical_identifier": VARCHAR 
  "medical_specialty": VARCHAR(255) 
  "on_leave_end_date": DATETIME 
  "on_leave_start_date": DATETIME 
  "onboarding_status": VARCHAR(255) 
  "phone": VARCHAR 
  "pro_email": VARCHAR 
  "registration_number": VARCHAR 
  "restricted_visible_conversation_specialties": ARRAY 
  "signature_url": TEXT 
  "slack_id": VARCHAR 
  "therapist_booking_therapist_id": UUID 
  "timezone": VARCHAR(255) 
}
"MEDICAL_CONVERSATION" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "active_after": DATETIME 
  "ai_status": VARCHAR(255) 
  "assignee_id": UUID 
  "creator_clinic_user_id": UUID 
  "current_interaction_state": VARCHAR(255) 
  "current_interaction_state_updated_at": DATETIME 
  "deleted_at": DATETIME 
  "has_24_hour_response_guarantee": BOOLEAN 
  "has_been_closed_by_medical_admin": BOOLEAN 
  "is_private_consultation": BOOLEAN 
  "is_video_consultation": BOOLEAN 
  "lang": VARCHAR(255) 
  "last_member_message_streak_time": DATETIME 
  "last_viewed_by_medical_admin": DATETIME 
  "last_viewed_by_user": DATETIME 
  "medical_specialty": VARCHAR(255) 
  "member_clinic_user_id": UUID 
  "topic": VARCHAR(255) 
  "tracking_ref": VARCHAR(255) 
}
"DOCTOR_PICTURE" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "medical_admin_id": UUID 
  "uri": VARCHAR(2083) 
}
"CLINIC_INVOICE" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "address": VARCHAR 
  "change_reason": TEXT 
  "comment": TEXT 
  "currency": VARCHAR(255) 
  "iban": VARCHAR 
  "invoice_date": DATE 
  "medical_admin_id": UUID 
  "sent_for_validation_at": DATETIME 
  "status": VARCHAR(255) 
  "validated_at": DATETIME 
}
"CLINIC_INVOICE_LINE" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "currency": VARCHAR(255) 
  "invoice_id": UUID 
  "item_description_key": VARCHAR(255) 
  "medical_specialty": VARCHAR(255) 
  "price_per_unit": INTEGER 
  "quantity": FLOAT 
  "total_price": INTEGER 
  "turing_export_id": VARCHAR 
  "unit": VARCHAR(255) 
}
"MEDICAL_ADMIN_SHIFT_DONATION_REQUEST" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "accepted_by_medical_admin_id": UUID 
  "donor_medical_admin_id": UUID 
  "proposed_to_medical_admin_ids": ARRAY 
  "refused_by_medical_admin_ids": ARRAY 
  "shift_duration_minutes": INTEGER 
  "shift_google_calendar_event_id": TEXT 
  "shift_start_time": DATETIME 
}
"MEDICAL_CONVERSATION_PART" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "ai_event_reason": VARCHAR(255) 
  "assignee_id": UUID 
  "body": TEXT 
  "bot_name_author": VARCHAR(255) 
  "clinic_user_author_id": UUID 
  "closing_status": VARCHAR(255) 
  "deleted_at": DATETIME 
  "display_mo_presentation": BOOLEAN 
  "internal_encrypted_body": TEXT 
  "is_automated": BOOLEAN 
  "medical_admin_author_id": UUID 
  "medical_conversation_id": UUID 
  "part_type": VARCHAR(255) 
  "rated_by_medical_admin_at": DATETIME 
  "rated_by_medical_admin_id": UUID 
  "rating_by_medical_admin": INTEGER 
  "rating_reason_by_medical_admin": VARCHAR(255) 
  "suggestion_metadata": JSONB 
  "suggestion_type": VARCHAR(255) 
}
"MEDICAL_CONVERSATION_AI_SUGGESTIONS_RESULT" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "end_time": DATETIME 
  "generation_result": JSONB 
  "is_error": BOOLEAN 
  "medical_conversation_part_id": UUID 
  "start_time": DATETIME 
  "token_in": INTEGER 
  "token_out": INTEGER 
}
"MEDICAL_CONVERSATION_ATTACHMENT" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "filename": VARCHAR(255) 
  "is_internally_encrypted": BOOLEAN 
  "medical_conversation_part_id": UUID 
  "mime_type": VARCHAR(255) 
  "mo_document_classification": VARCHAR(255) 
  "s3_key": VARCHAR(255) 
}
"MEDICAL_CONVERSATION_BOOKMARK" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "medical_admin_id": UUID 
  "medical_conversation_id": UUID 
}
"MEDICAL_CONVERSATION_FOLLOW_UP" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "cancelled_at": DATETIME 
  "completed_at": DATETIME 
  "due_at": DATETIME 
  "medical_admin_id": UUID 
  "medical_conversation_id": UUID 
  "note_id": UUID 
}
"MEDICAL_CONVERSATION_PROACTIVE_PENDING" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "booking_session_id": UUID 
  "conversation_starters": ARRAY 
  "conversation_topic": VARCHAR(255) 
  "do_not_send_before": DATETIME 
  "internal_encrypted_notes": ARRAY 
  "medical_admin_id": UUID 
  "medical_specialty": VARCHAR(255) 
  "member_clinic_user_id": UUID 
  "suggestion_metadata": JSONB 
  "suggestion_type": VARCHAR(255) 
  "tracking_ref": VARCHAR(255) 
}
"MEDICAL_CONVERSATION_RATING" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "feedback": TEXT 
  "medical_conversation_id": UUID 
  "score": INTEGER 
}
"MEDICAL_CONVERSATION_RATING_V2" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "alternative_answer": VARCHAR(64) 
  "alternative_answer_detail": VARCHAR(2048) 
  "clarity_answer": VARCHAR(64) 
  "clinic_user_id": UUID 
  "efficacy_answer": VARCHAR(64) 
  "efficacy_answer_detail": TEXT 
  "empathy_answer": VARCHAR(64) 
  "follow_up_answer": VARCHAR(64) 
  "follow_up_answer_detail": VARCHAR(2048) 
  "help_answer": TEXT 
  "help_answer_detail": VARCHAR(2048) 
  "low_satisfaction_detail": VARCHAR(2048) 
  "medical_conversation_id": UUID 
  "medical_conversation_part_id": UUID 
  "rating": INTEGER 
  "trust_answer": VARCHAR(64) 
}
"MEDICAL_CONVERSATION_REDIRECTION" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "internal_encrypted_context": TEXT 
  "medical_specialty": VARCHAR(255) 
  "on_demand": BOOLEAN 
  "opened_medical_conversation_id": UUID 
  "redirected_by_medical_admin_id": UUID 
  "redirected_medical_conversation_part_id": UUID 
  "status": VARCHAR(255) 
}
"MEDICAL_CONVERSATION_REDIRECTION_MEDICAL_CONVERSATION_PART" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "medical_conversation_part_id": UUID 
  "medical_conversation_redirection_id": UUID 
}
"MEDICAL_CONVERSATION_REVIEW_FROM_MEDICAL_ADMIN" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "medical_conversation_id": UUID 
  "review_by_medical_admin_id": UUID 
  "review_content": JSONB 
  "submitted_at": DATETIME 
}
"MEDICAL_CONVERSATION_TAG_MAPPING" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "medical_admin_id": UUID 
  "medical_conversation_id": UUID 
  "medical_conversation_part_id": UUID 
  "tag_id": UUID 
}
"ENCRYPTION_USER" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "app_id": VARCHAR(255) 
  "app_user_id": VARCHAR(255) 
  "device_public_key": TEXT 
  "device_secret_key_as_jwe": TEXT 
  "is_device_secret_encrypted": BOOLEAN 
  "user_public_key": TEXT 
  "user_secret_key_as_jwe": TEXT 
  "user_secret_recovery_requested": BOOLEAN 
}
"ENCRYPTION_DEVICE" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "device_id": CHAR(32) 
  "device_name": VARCHAR(255) 
  "device_public_key": TEXT 
  "encryption_user_id": UUID 
  "user_secret_device_recovery_requested": BOOLEAN 
  "user_secret_key_as_jwe": TEXT 
}
"ENCRYPTION_GROUP" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "name": TEXT 
  "public_key": TEXT 
  "secret_key_as_jwe": TEXT 
}
"ENCRYPTION_GROUP_USER" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "encryption_group_id": UUID 
  "encryption_user_id": UUID 
  "full_name": TEXT 
  "group_key_encryption_key_as_jwe": TEXT 
}
"CLINIC_USER"."id" -> "MEDICAL_ADMIN"."clinic_user_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"CLINIC_USER"."id" -> "MEDICAL_CONVERSATION"."creator_clinic_user_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION"."assignee_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"CLINIC_USER"."id" -> "MEDICAL_CONVERSATION"."member_clinic_user_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "DOCTOR_PICTURE"."medical_admin_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-one-required
}
"MEDICAL_ADMIN"."id" -> "CLINIC_INVOICE"."medical_admin_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"CLINIC_INVOICE"."id" -> "CLINIC_INVOICE_LINE"."invoice_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_ADMIN_SHIFT_DONATION_REQUEST"."accepted_by_medical_admin_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_ADMIN_SHIFT_DONATION_REQUEST"."donor_medical_admin_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION"."id" -> "MEDICAL_CONVERSATION_PART"."medical_conversation_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_PART"."assignee_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"CLINIC_USER"."id" -> "MEDICAL_CONVERSATION_PART"."clinic_user_author_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_PART"."medical_admin_author_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_PART"."rated_by_medical_admin_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION_PART"."id" -> "MEDICAL_CONVERSATION_AI_SUGGESTIONS_RESULT"."medical_conversation_part_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION_PART"."id" -> "MEDICAL_CONVERSATION_ATTACHMENT"."medical_conversation_part_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_BOOKMARK"."medical_admin_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION"."id" -> "MEDICAL_CONVERSATION_BOOKMARK"."medical_conversation_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_FOLLOW_UP"."medical_admin_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION_PART"."id" -> "MEDICAL_CONVERSATION_FOLLOW_UP"."note_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION"."id" -> "MEDICAL_CONVERSATION_FOLLOW_UP"."medical_conversation_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_PROACTIVE_PENDING"."medical_admin_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"CLINIC_USER"."id" -> "MEDICAL_CONVERSATION_PROACTIVE_PENDING"."member_clinic_user_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION"."id" -> "MEDICAL_CONVERSATION_RATING"."medical_conversation_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION_PART"."id" -> "MEDICAL_CONVERSATION_RATING_V2"."medical_conversation_part_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"CLINIC_USER"."id" -> "MEDICAL_CONVERSATION_RATING_V2"."clinic_user_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION"."id" -> "MEDICAL_CONVERSATION_RATING_V2"."medical_conversation_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION_PART"."id" -> "MEDICAL_CONVERSATION_REDIRECTION"."redirected_medical_conversation_part_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION"."id" -> "MEDICAL_CONVERSATION_REDIRECTION"."opened_medical_conversation_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_REDIRECTION"."redirected_by_medical_admin_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION_PART"."id" -> "MEDICAL_CONVERSATION_REDIRECTION_MEDICAL_CONVERSATION_PART"."medical_conversation_part_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION_REDIRECTION"."id" -> "MEDICAL_CONVERSATION_REDIRECTION_MEDICAL_CONVERSATION_PART"."medical_conversation_redirection_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_REVIEW_FROM_MEDICAL_ADMIN"."review_by_medical_admin_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION"."id" -> "MEDICAL_CONVERSATION_REVIEW_FROM_MEDICAL_ADMIN"."medical_conversation_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION"."id" -> "MEDICAL_CONVERSATION_TAG_MAPPING"."medical_conversation_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"MEDICAL_CONVERSATION_PART"."id" -> "MEDICAL_CONVERSATION_TAG_MAPPING"."medical_conversation_part_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"MEDICAL_ADMIN"."id" -> "MEDICAL_CONVERSATION_TAG_MAPPING"."medical_admin_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"ENCRYPTION_USER"."id" -> "ENCRYPTION_DEVICE"."encryption_user_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"ENCRYPTION_GROUP"."id" -> "ENCRYPTION_GROUP_USER"."encryption_group_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
"ENCRYPTION_USER"."id" -> "ENCRYPTION_GROUP_USER"."encryption_user_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
Hold "Alt" / "Option" to enable pan & zoom