Data model

"PAYROLL_CALENDAR" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "admin_rules_config": JSONB 
  "company_id": VARCHAR(36) 
  "country": VARCHAR(2) 
  "current_start_date": DATE 
  "entries": JSONB 
  "marmot_rules_config": JSONB 
  "recurring_rule": JSONB 
  "upcoming_cutoff_date": DATE 
}
"SNAPSHOT_ENTRY" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "beneficiary_user_id": VARCHAR(36) 
  "company_id": VARCHAR(36) 
  "country": VARCHAR(2) 
  "end_date": DATE 
  "enrollment_type": VARCHAR(255) 
  "entry_data": JSONB 
  "entry_type": VARCHAR(255) 
  "link_id": VARCHAR(36) 
  "primary_user_id": VARCHAR(36) 
  "product_type": VARCHAR(255) 
  "snapshot_date": DATE 
  "start_date": DATE 
}
"PAYROLL_EVENT" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "after_snapshot_entry_id": UUID 
  "after_values": JSONB 
  "before_snapshot_entry_id": UUID 
  "before_values": JSONB 
  "beneficiary_user_id": VARCHAR(36) 
  "company_id": VARCHAR(36) 
  "country": VARCHAR(2) 
  "effective_date": DATE 
  "event_date": DATE 
  "event_type": VARCHAR(255) 
  "period_type": VARCHAR(255) 
  "primary_user_id": VARCHAR(36) 
  "product_type": VARCHAR(255) 
}
"PAYROLL_CHANGE" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "acknowledged_at": DATETIME 
  "acknowledged_by_user_id": VARCHAR(36) 
  "beneficiary_user_id": VARCHAR(36) 
  "categories": ARRAY 
  "change_source": VARCHAR(255) 
  "company_id": VARCHAR(36) 
  "cost_breakdown": JSONB 
  "country": VARCHAR(2) 
  "effective_end_date": DATE 
  "effective_start_date": DATE 
  "enrollment_type": VARCHAR(255) 
  "link_id": VARCHAR(36) 
  "month": DATE 
  "monthly_rate_total_after": INTEGER 
  "monthly_rate_total_before": INTEGER 
  "num_days": INTEGER 
  "primary_user_id": VARCHAR(36) 
  "product_type": VARCHAR(255) 
  "regularization_month": DATE 
  "source_event_id": UUID 
}
"PAYROLL_TEMPLATE" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "account_id": VARCHAR(36) 
  "admin_user_id": VARCHAR(36) 
  "country": VARCHAR(2) 
  "display_name": VARCHAR(255) 
  "filtering": JSONB 
  "granularity": VARCHAR(50) 
  "key": VARCHAR(255) 
  "sector": VARCHAR(50) 
  "sorting": JSONB 
}
"PAYROLL_COLUMN_DEFINITION" {
  shape: sql_table
  "id": UUID {constraint: primary_key}
  "aggregation": VARCHAR(50) 
  "data_field": VARCHAR(255) 
  "display_name": VARCHAR(255) 
  "enforced": BOOLEAN 
  "formatting": JSONB 
  "key": VARCHAR(255) 
  "position": INTEGER 
  "template_id": UUID 
  "visible": BOOLEAN 
}
"SNAPSHOT_ENTRY"."id" -> "PAYROLL_EVENT"."before_snapshot_entry_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"SNAPSHOT_ENTRY"."id" -> "PAYROLL_EVENT"."after_snapshot_entry_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"PAYROLL_EVENT"."id" -> "PAYROLL_CHANGE"."source_event_id": {
  source-arrowhead.shape: cf-one
  target-arrowhead.shape: cf-many
}
"PAYROLL_TEMPLATE"."id" -> "PAYROLL_COLUMN_DEFINITION"."template_id": {
  source-arrowhead.shape: cf-one-required
  target-arrowhead.shape: cf-many
}
Hold "Alt" / "Option" to enable pan & zoom