Dealer_Onboarding_Backend/docs/dealer_onboard_backend_schema.mermaid

1190 lines
32 KiB
Plaintext

erDiagram
%% ============================================
%% DEALER ONBOARDING BACKEND SCHEMA
%% Based on Re_New_Dealer_Onboard_TWO.md (v1.4)
%% Comprehensive Database Schema Design
%% ============================================
%% ============================================
%% USER MANAGEMENT & AUTHENTICATION
%% ============================================
USERS {
uuid user_id PK
string employee_id UK
string email UK
string full_name
string mobile_number
string department
string designation
uuid role_code FK
uuid zone_id FK
uuid region_id FK
uuid state_id FK
uuid district_id FK
uuid area_id FK
uuid dealer_id FK
boolean is_active
boolean is_external
string sso_provider
string status
timestamp last_login
timestamp created_at
timestamp updated_at
}
ROLES {
uuid role_id PK
string role_code UK
string role_name
string description
string category
boolean is_active
timestamp created_at
timestamp updated_at
}
PERMISSIONS {
uuid permission_id PK
string permission_code UK
string permission_name
string module
string permission_type
string action
string description
timestamp created_at
}
ROLE_PERMISSIONS {
uuid role_permission_id PK
uuid role_id FK
uuid permission_id FK
boolean can_view
boolean can_create
boolean can_edit
boolean can_delete
boolean can_approve
timestamp created_at
}
USER_ROLES {
uuid user_role_id PK
uuid user_id FK
uuid role_id FK
uuid zone_id FK
uuid region_id FK
uuid area_id FK
timestamp assigned_at
uuid assigned_by FK
timestamp created_at
}
%% ============================================
%% ORGANIZATIONAL HIERARCHY
%% ============================================
ZONES {
uuid zone_id PK
string zone_code UK
string zone_name
string description
boolean is_active
uuid zonal_business_head_id FK
timestamp created_at
timestamp updated_at
}
REGIONS {
uuid region_id PK
uuid zone_id FK
uuid state_id FK
string region_code UK
string region_name
string description
boolean is_active
timestamp created_at
timestamp updated_at
}
STATES {
uuid state_id PK
string state_name UK
uuid zone_id FK
boolean is_active
timestamp created_at
}
DISTRICTS {
uuid district_id PK
uuid state_id FK
string district_name
boolean is_active
timestamp created_at
}
AREAS {
uuid area_id PK
uuid region_id FK
uuid district_id FK
string area_code UK
string area_name
string city
string pincode
boolean is_active
timestamp created_at
timestamp updated_at
}
ZONE_MANAGERS {
uuid zone_manager_id PK
uuid zone_id FK
uuid user_id FK
string manager_type
boolean is_active
timestamp assigned_at
timestamp created_at
}
REGION_MANAGERS {
uuid region_manager_id PK
uuid region_id FK
uuid user_id FK
string manager_type
boolean is_active
timestamp assigned_at
timestamp created_at
}
AREA_MANAGERS {
uuid area_manager_id PK
uuid area_id FK
uuid user_id FK
string manager_type
boolean is_active
timestamp assigned_at
timestamp created_at
}
DISTRICT_MANAGERS {
uuid district_manager_id PK
uuid district_id FK
uuid user_id FK
string manager_type
boolean is_active
timestamp assigned_at
timestamp created_at
}
%% ============================================
%% OPPORTUNITY MANAGEMENT
%% ============================================
OPPORTUNITIES {
uuid opportunity_id PK
uuid zone_id FK
uuid region_id FK
uuid state_id FK
uuid district_id FK
string city
string opportunity_type
integer capacity
string priority
date open_from
date open_to
string status
text notes
uuid created_by FK
timestamp created_at
timestamp updated_at
}
%% ============================================
%% DEALER ENTITY (POST-ONBOARDING)
%% ============================================
DEALERS {
uuid dealer_id PK
uuid application_id FK
string dealer_code UK
string dealer_name
string constitution_type
text registered_address
string gst_number
string pan_number
string status
date activation_date
date last_working_day
boolean portal_access_active
timestamp created_at
timestamp updated_at
}
%% ============================================
%% DEALER APPLICATION
%% ============================================
APPLICATIONS {
uuid application_id PK
string registration_number UK
string applicant_name
string email UK
string mobile_number
integer age
string country
string state
string district
string pincode
string interested_city
string company_name
string education_qualification
boolean owns_re_bike
boolean is_existing_dealer
text address
text description
string preferred_location
string application_status
string opportunity_status
boolean is_shortlisted
boolean dd_lead_shortlisted
uuid assigned_to FK
uuid zone_id FK
uuid region_id FK
uuid area_id FK
uuid assigned_dd_zm FK
uuid assigned_rbm FK
timestamp submitted_at
timestamp created_at
timestamp updated_at
}
%% ============================================
%% QUESTIONNAIRE MANAGEMENT
%% ============================================
QUESTIONNAIRES {
uuid questionnaire_id PK
string questionnaire_code UK
string version
string title
text description
boolean is_active
uuid created_by FK
timestamp created_at
timestamp updated_at
}
QUESTIONNAIRE_SECTIONS {
uuid section_id PK
uuid questionnaire_id FK
string section_name
string section_type
integer section_order
decimal section_weightage
boolean is_active
timestamp created_at
}
QUESTIONNAIRE_QUESTIONS {
uuid question_id PK
uuid section_id FK
string question_text
string question_type
integer question_order
decimal question_weightage
json options
boolean is_mandatory
boolean is_active
timestamp created_at
timestamp updated_at
}
QUESTIONNAIRE_RESPONSES {
uuid response_id PK
uuid application_id FK
uuid questionnaire_id FK
uuid question_id FK
text response_text
json response_data
decimal score_obtained
decimal max_score
timestamp submitted_at
timestamp created_at
timestamp updated_at
}
QUESTIONNAIRE_SCORES {
uuid score_id PK
uuid application_id FK
uuid questionnaire_id FK
decimal total_score
decimal max_score
decimal percentage_score
integer rank_in_city
integer rank_in_region
timestamp calculated_at
timestamp created_at
timestamp updated_at
}
%% ============================================
%% INTERVIEW MANAGEMENT
%% ============================================
INTERVIEWS {
uuid interview_id PK
uuid application_id FK
integer interview_level
string interview_type
string interview_mode
date interview_date
time interview_time
string meeting_link
string venue_address
string status
uuid scheduled_by FK
timestamp scheduled_at
timestamp created_at
timestamp updated_at
}
INTERVIEW_PARTICIPANTS {
uuid participant_id PK
uuid interview_id FK
uuid user_id FK
string participant_role
boolean is_required
boolean has_attended
timestamp created_at
}
INTERVIEW_EVALUATIONS {
uuid evaluation_id PK
uuid interview_id FK
uuid application_id FK
uuid evaluator_id FK
integer interview_level
decimal kt_matrix_score
decimal feedback_score
decimal overall_score
string recommendation
text remarks
text feedback_summary
timestamp submitted_at
timestamp created_at
timestamp updated_at
}
KT_MATRIX_SCORES {
uuid kt_score_id PK
uuid evaluation_id FK
string parameter_name
decimal parameter_weightage
decimal score_obtained
text remarks
timestamp created_at
}
INTERVIEW_FEEDBACK {
uuid feedback_id PK
uuid evaluation_id FK
string feedback_category
text feedback_text
decimal category_score
timestamp created_at
}
AI_SUMMARIES {
uuid summary_id PK
uuid application_id FK
integer interview_level
text ai_generated_summary
text nbh_edited_summary
boolean is_approved
uuid approved_by FK
timestamp generated_at
timestamp approved_at
timestamp created_at
timestamp updated_at
}
%% ============================================
%% WORK NOTES & COMMUNICATION
%% ============================================
WORK_NOTES {
uuid work_note_id PK
uuid application_id FK
uuid created_by FK
text note_content
json tagged_users
json attachments
string note_type
uuid parent_note_id FK
boolean is_internal
boolean is_deleted
timestamp created_at
timestamp updated_at
}
WORK_NOTE_TAGS {
uuid tag_id PK
uuid work_note_id FK
uuid tagged_user_id FK
boolean is_notified
timestamp notified_at
timestamp created_at
}
WORK_NOTE_ATTACHMENTS {
uuid attachment_id PK
uuid work_note_id FK
uuid document_id FK
timestamp created_at
}
%% ============================================
%% DOCUMENT MANAGEMENT
%% ============================================
DOCUMENTS {
uuid document_id PK
uuid application_id FK
uuid uploaded_by FK
string document_type
string document_category
string file_name
string file_type
bigint file_size
string file_path
string storage_url
string mime_type
integer version
string status
uuid verified_by FK
timestamp verified_at
boolean is_deleted
timestamp uploaded_at
timestamp created_at
timestamp updated_at
}
DOCUMENT_VERSIONS {
uuid version_id PK
uuid document_id FK
integer version_number
string file_path
string storage_url
uuid uploaded_by FK
timestamp uploaded_at
timestamp created_at
}
LOI_DOCUMENTS {
uuid loi_doc_id PK
uuid application_id FK
string document_name
string document_type
uuid document_id FK
boolean is_mandatory
boolean is_uploaded
boolean is_verified
timestamp required_at
timestamp uploaded_at
timestamp verified_at
}
STATUTORY_DOCUMENTS {
uuid statutory_doc_id PK
uuid application_id FK
string document_name
string document_type
uuid document_id FK
boolean is_mandatory
boolean is_uploaded
boolean is_verified
uuid verified_by FK
timestamp verified_at
timestamp created_at
}
%% ============================================
%% FDD PROCESS
%% ============================================
FDD_ASSIGNMENTS {
uuid fdd_assignment_id PK
uuid application_id FK
uuid fdd_user_id FK
string assignment_status
date assigned_at
date due_date
timestamp created_at
timestamp updated_at
}
FDD_REPORTS {
uuid fdd_report_id PK
uuid fdd_assignment_id FK
uuid application_id FK
string report_type
string report_level
uuid document_id FK
text remarks
string status
timestamp submitted_at
timestamp created_at
timestamp updated_at
}
%% ============================================
%% LOI PROCESS
%% ============================================
LOI_REQUESTS {
uuid loi_request_id PK
uuid application_id FK
string request_status
date document_request_date
date security_deposit_request_date
boolean documents_complete
boolean security_deposit_verified
boolean can_send_back
boolean can_revoke
timestamp created_at
timestamp updated_at
}
LOI_APPROVALS {
uuid loi_approval_id PK
uuid loi_request_id FK
uuid application_id FK
integer approval_level
uuid approver_id FK
string approval_status
text approval_remarks
timestamp approved_at
timestamp created_at
timestamp updated_at
}
LOI_DOCUMENTS_GENERATED {
uuid loi_doc_gen_id PK
uuid application_id FK
uuid loi_request_id FK
uuid document_id FK
date issue_date
uuid authorized_signatory FK
string document_version
timestamp generated_at
timestamp uploaded_at
}
LOI_ACKNOWLEDGEMENTS {
uuid loi_ack_id PK
uuid application_id FK
uuid loi_doc_gen_id FK
uuid document_id FK
timestamp acknowledged_at
timestamp created_at
}
%% ============================================
%% SECURITY DEPOSIT
%% ============================================
SECURITY_DEPOSITS {
uuid deposit_id PK
uuid application_id FK
decimal deposit_amount
string payment_mode
string transaction_id
date transaction_date
string bank_name
string account_number
uuid proof_document_id FK
string verification_status
uuid verified_by FK
timestamp verified_at
text verification_remarks
timestamp created_at
timestamp updated_at
}
%% ============================================
%% DEALER CODE GENERATION
%% ============================================
DEALER_CODES {
uuid dealer_code_id PK
uuid application_id FK
string dealer_code UK
string sales_code
string service_code
string gma_code
string gear_code
string sap_dealer_id
boolean is_active
timestamp generated_at
uuid generated_by FK
timestamp created_at
timestamp updated_at
}
%% ============================================
%% DEALER SELF-SERVICE (SECTION 12)
%% ============================================
DEALER_RESIGNATIONS {
uuid resignation_id PK
uuid dealer_id FK
string outlet_code
date last_operational_date_sales
date last_operational_date_service
date proposed_lwd
string reason_type
text reason_description
string status
boolean is_withdrawn
timestamp submitted_at
timestamp updated_at
}
DEALER_RELOCATIONS {
uuid relocation_id PK
uuid dealer_id FK
string current_location_json
string proposed_location_json
decimal distance_km
string property_type
date expected_relocation_date
text reason
string status
timestamp submitted_at
}
DEALER_CONSTITUTION_CHANGES {
uuid constitution_change_id PK
uuid dealer_id FK
string current_constitution
string proposed_constitution
text reason
json new_partners_details
json shareholding_pattern
string status
timestamp submitted_at
}
%% ============================================
%% ARCHITECTURAL WORK
%% ============================================
ARCHITECTURAL_ASSIGNMENTS {
uuid arch_assignment_id PK
uuid application_id FK
uuid assigned_to_team FK
string assignment_status
date assigned_at
date due_date
timestamp created_at
timestamp updated_at
}
ARCHITECTURAL_DOCUMENTS {
uuid arch_doc_id PK
uuid arch_assignment_id FK
uuid application_id FK
string document_type
uuid document_id FK
string layout_type
boolean dealer_consent_received
date consent_date
timestamp uploaded_at
timestamp created_at
}
CONSTRUCTION_PROGRESS {
uuid progress_id PK
uuid application_id FK
string progress_type
text progress_description
uuid document_id FK
integer progress_percentage
timestamp reported_at
timestamp created_at
}
%% ============================================
%% EOR CHECKLIST
%% ============================================
EOR_CHECKLISTS {
uuid eor_checklist_id PK
uuid application_id FK
string checklist_name
string status
integer total_items
integer completed_items
integer percentage_complete
timestamp created_at
timestamp updated_at
}
EOR_CHECKLIST_ITEMS {
uuid eor_item_id PK
uuid eor_checklist_id FK
string item_name
string item_category
string responsible_team
string status
text remarks
uuid verified_by FK
timestamp verified_at
timestamp created_at
timestamp updated_at
}
%% ============================================
%% LOA PROCESS
%% ============================================
LOA_REQUESTS {
uuid loa_request_id PK
uuid application_id FK
string request_status
boolean eor_complete
boolean loa_issued_before_eor
timestamp created_at
timestamp updated_at
}
LOA_APPROVALS {
uuid loa_approval_id PK
uuid loa_request_id FK
uuid application_id FK
uuid approver_id FK
string approval_status
text approval_remarks
timestamp approved_at
timestamp created_at
timestamp updated_at
}
LOA_DOCUMENTS_GENERATED {
uuid loa_doc_gen_id PK
uuid application_id FK
uuid loa_request_id FK
uuid document_id FK
date issue_date
uuid authorized_signatory FK
string document_version
timestamp generated_at
timestamp uploaded_at
}
%% ============================================
%% INAUGURATION
%% ============================================
INAUGURATIONS {
uuid inauguration_id PK
uuid application_id FK
date inauguration_date
string venue
text event_summary
uuid organized_by FK
string status
timestamp created_at
timestamp updated_at
}
INAUGURATION_ATTENDEES {
uuid attendee_id PK
uuid inauguration_id FK
uuid user_id FK
string attendee_role
boolean is_confirmed
timestamp created_at
}
INAUGURATION_DOCUMENTS {
uuid inauguration_doc_id PK
uuid inauguration_id FK
uuid document_id FK
string document_type
timestamp uploaded_at
}
%% ============================================
%% TERMINATION & F&F SETTLEMENT (SECTION 4.3 & 10)
%% ============================================
TERMINATION_REQUESTS {
uuid termination_id PK
uuid dealer_id FK
string category
text reason
date proposed_lwd
string status
uuid initiated_by FK
timestamp created_at
}
TERMINATION_APPROVALS {
uuid approval_id PK
uuid termination_id FK
integer level
string approver_role
uuid approver_id FK
string action
text remarks
timestamp created_at
}
FNF_CASES {
uuid fnf_id PK
uuid dealer_id FK
uuid source_id FK
string source_type
date last_working_day
string status
timestamp initiated_at
}
FNF_DEPARTMENT_CLEARANCES {
uuid clearance_id PK
uuid fnf_id FK
string department_name
string clearance_status
decimal payable_amount
decimal recovery_amount
text remarks
uuid cleared_by FK
timestamp cleared_at
}
FNF_LINE_ITEMS {
uuid line_item_id PK
uuid fnf_id FK
uuid clearance_id FK
string item_type
string department
string description
decimal amount
uuid added_by FK
timestamp created_at
}
FNF_SETTLEMENT_SUMMARIES {
uuid summary_id PK
uuid fnf_id FK
decimal total_payables
decimal total_receivables
decimal total_deductions
decimal net_settlement_amount
string status
uuid verified_by FK
timestamp verified_at
}
%% ============================================
%% NOTIFICATIONS
%% ============================================
NOTIFICATIONS {
uuid notification_id PK
uuid user_id FK
uuid application_id FK
string notification_type
string title
text message
string priority
boolean is_read
json metadata
timestamp read_at
timestamp created_at
}
EMAIL_LOGS {
uuid email_log_id PK
uuid application_id FK
uuid user_id FK
string email_type
string recipient_email
string subject
text email_body
string status
text error_message
timestamp sent_at
timestamp created_at
}
WHATSAPP_LOGS {
uuid whatsapp_log_id PK
uuid application_id FK
string recipient_number
string message_type
text message_content
string status
text error_message
timestamp sent_at
timestamp created_at
}
%% ============================================
%% SLA & TAT TRACKING
%% ============================================
SLA_CONFIGURATIONS {
uuid sla_config_id PK
string activity_name
string owner_role
integer tat_hours
string tat_unit
boolean is_active
timestamp created_at
timestamp updated_at
}
SLA_CONFIG_REMINDERS {
uuid reminder_id PK
uuid sla_config_id FK
integer time_value
string time_unit
boolean is_enabled
timestamp created_at
}
SLA_CONFIG_ESCALATIONS {
uuid escalation_config_id PK
uuid sla_config_id FK
integer level
integer time_value
string time_unit
string notify_email
timestamp created_at
}
SLA_TRACKING {
uuid sla_tracking_id PK
uuid application_id FK
uuid sla_config_id FK
string activity_name
uuid owner_id FK
timestamp start_time
timestamp due_time
timestamp completed_time
string status
integer completion_percentage
timestamp created_at
timestamp updated_at
}
SLA_ESCALATIONS {
uuid escalation_id PK
uuid sla_tracking_id FK
integer escalation_level
uuid escalated_to FK
text escalation_reason
timestamp escalated_at
timestamp resolved_at
}
%% ============================================
%% EMAIL TEMPLATES
%% ============================================
EMAIL_TEMPLATES {
uuid template_id PK
string template_name UK
string template_code UK
string subject
text template_body
string trigger_event
json system_variables
boolean is_active
string version
timestamp created_at
timestamp updated_at
}
%% ============================================
%% AUDIT TRAIL
%% ============================================
AUDIT_LOGS {
uuid audit_log_id PK
uuid application_id FK
uuid user_id FK
string action_type
string entity_type
uuid entity_id
text description
json before_state
json after_state
json metadata
string ip_address
string user_agent
timestamp created_at
}
ACTIVITY_LOGS {
uuid activity_id PK
uuid application_id FK
uuid user_id FK
string activity_type
text activity_description
json activity_data
timestamp created_at
}
%% ============================================
%% APPLICATION STATUS TRACKING
%% ============================================
APPLICATION_STATUS_HISTORY {
uuid status_history_id PK
uuid application_id FK
string previous_status
string new_status
uuid changed_by FK
text change_reason
timestamp changed_at
}
APPLICATION_PROGRESS {
uuid progress_id PK
uuid application_id FK
string stage_name
integer stage_order
string status
integer completion_percentage
timestamp stage_started_at
timestamp stage_completed_at
timestamp created_at
timestamp updated_at
}
WORKFLOW_STAGES_CONFIG {
uuid stage_config_id PK
string stage_name UK
integer stage_order
string color_code
boolean is_parallel
json default_evaluators
boolean is_active
timestamp created_at
}
%% ============================================
%% DEALER PORTAL ACCESS CONFIG
%% ============================================
DEALER_PORTAL_CONFIG {
uuid config_id PK
uuid dealer_id FK
boolean allows_resignation
boolean allows_relocation
boolean allows_constitution_change
timestamp access_revoked_at
}
%% ============================================
%% RELATIONSHIPS
%% ============================================
USERS ||--o{ USER_ROLES : "has"
ROLES ||--o{ USER_ROLES : "assigned_to"
ROLES ||--o{ ROLE_PERMISSIONS : "has"
PERMISSIONS ||--o{ ROLE_PERMISSIONS : "granted_in"
ZONES ||--o{ STATES : "contains"
STATES ||--o{ DISTRICTS : "contains"
ZONES ||--o{ REGIONS : "contains"
STATES ||--o{ REGIONS : "contains"
REGIONS ||--o{ AREAS : "contains"
DISTRICTS ||--o{ AREAS : "contains"
ZONES ||--o{ ZONE_MANAGERS : "managed_by"
REGIONS ||--o{ REGION_MANAGERS : "managed_by"
AREAS ||--o{ AREA_MANAGERS : "managed_by"
USERS ||--o{ ZONE_MANAGERS : "is"
USERS ||--o{ REGION_MANAGERS : "is"
USERS ||--o{ AREA_MANAGERS : "is"
DISTRICTS ||--o{ DISTRICT_MANAGERS : "managed_by"
USERS ||--o{ DISTRICT_MANAGERS : "is"
ZONES ||--o{ OPPORTUNITIES : "has"
REGIONS ||--o{ OPPORTUNITIES : "has"
STATES ||--o{ OPPORTUNITIES : "has"
DISTRICTS ||--o{ OPPORTUNITIES : "has"
ZONES ||--o{ APPLICATIONS : "belongs_to"
REGIONS ||--o{ APPLICATIONS : "belongs_to"
AREAS ||--o{ APPLICATIONS : "belongs_to"
USERS ||--o{ APPLICATIONS : "assigned_to"
APPLICATIONS ||--o{ QUESTIONNAIRE_RESPONSES : "has"
QUESTIONNAIRES ||--o{ QUESTIONNAIRE_RESPONSES : "used_in"
QUESTIONNAIRE_QUESTIONS ||--o{ QUESTIONNAIRE_RESPONSES : "answered_by"
APPLICATIONS ||--o{ QUESTIONNAIRE_SCORES : "has"
APPLICATIONS ||--o{ INTERVIEWS : "has"
INTERVIEWS ||--o{ INTERVIEW_PARTICIPANTS : "includes"
INTERVIEWS ||--o{ INTERVIEW_EVALUATIONS : "evaluated_in"
INTERVIEW_EVALUATIONS ||--o{ KT_MATRIX_SCORES : "contains"
INTERVIEW_EVALUATIONS ||--o{ INTERVIEW_FEEDBACK : "has"
APPLICATIONS ||--o{ AI_SUMMARIES : "has"
APPLICATIONS ||--o{ WORK_NOTES : "has"
WORK_NOTES ||--o{ WORK_NOTE_TAGS : "tags"
WORK_NOTES ||--o{ WORK_NOTE_ATTACHMENTS : "has"
DOCUMENTS ||--o{ WORK_NOTE_ATTACHMENTS : "attached_to"
APPLICATIONS ||--o{ DOCUMENTS : "has"
DOCUMENTS ||--o{ DOCUMENT_VERSIONS : "has"
APPLICATIONS ||--o{ LOI_DOCUMENTS : "requires"
APPLICATIONS ||--o{ STATUTORY_DOCUMENTS : "requires"
APPLICATIONS ||--o{ FDD_ASSIGNMENTS : "assigned_to"
FDD_ASSIGNMENTS ||--o{ FDD_REPORTS : "generates"
FDD_REPORTS ||--o{ DOCUMENTS : "stored_as"
APPLICATIONS ||--o{ LOI_REQUESTS : "has"
LOI_REQUESTS ||--o{ LOI_APPROVALS : "requires"
LOI_REQUESTS ||--o{ LOI_DOCUMENTS_GENERATED : "generates"
LOI_DOCUMENTS_GENERATED ||--o{ LOI_ACKNOWLEDGEMENTS : "acknowledged_by"
APPLICATIONS ||--o{ SECURITY_DEPOSITS : "has"
SECURITY_DEPOSITS ||--o{ DOCUMENTS : "proof_document"
APPLICATIONS ||--o{ DEALER_CODES : "has"
APPLICATIONS ||--o{ DEALERS : "onboarded_as"
DEALERS ||--o{ USERS : "has_portal_users"
DEALERS ||--o{ DEALER_RESIGNATIONS : "initiates"
DEALERS ||--o{ DEALER_RELOCATIONS : "requests"
DEALERS ||--o{ DEALER_CONSTITUTION_CHANGES : "proposes"
DEALERS ||--o{ TERMINATION_REQUESTS : "terminated_by"
TERMINATION_REQUESTS ||--o{ TERMINATION_APPROVALS : "requires"
DEALERS ||--o{ FNF_CASES : "settled_in"
FNF_CASES ||--o{ FNF_DEPARTMENT_CLEARANCES : "requires_NOC_from"
FNF_CASES ||--o{ FNF_SETTLEMENT_SUMMARIES : "consolidated_in"
DEALERS ||--o{ DEALER_PORTAL_CONFIG : "governed_by"
APPLICATIONS ||--o{ ARCHITECTURAL_ASSIGNMENTS : "assigned_to"
ARCHITECTURAL_ASSIGNMENTS ||--o{ ARCHITECTURAL_DOCUMENTS : "has"
APPLICATIONS ||--o{ CONSTRUCTION_PROGRESS : "tracks"
APPLICATIONS ||--o{ EOR_CHECKLISTS : "has"
EOR_CHECKLISTS ||--o{ EOR_CHECKLIST_ITEMS : "contains"
APPLICATIONS ||--o{ LOA_REQUESTS : "has"
LOA_REQUESTS ||--o{ LOA_APPROVALS : "requires"
LOA_REQUESTS ||--o{ LOA_DOCUMENTS_GENERATED : "generates"
APPLICATIONS ||--o{ INAUGURATIONS : "has"
INAUGURATIONS ||--o{ INAUGURATION_ATTENDEES : "includes"
INAUGURATIONS ||--o{ INAUGURATION_DOCUMENTS : "has"
USERS ||--o{ NOTIFICATIONS : "receives"
APPLICATIONS ||--o{ NOTIFICATIONS : "triggers"
APPLICATIONS ||--o{ EMAIL_LOGS : "triggers"
APPLICATIONS ||--o{ WHATSAPP_LOGS : "triggers"
SLA_CONFIGURATIONS ||--o{ SLA_TRACKING : "tracks"
APPLICATIONS ||--o{ SLA_TRACKING : "monitored_by"
SLA_TRACKING ||--o{ SLA_ESCALATIONS : "escalates"
APPLICATIONS ||--o{ AUDIT_LOGS : "logged_in"
USERS ||--o{ AUDIT_LOGS : "performed_by"
APPLICATIONS ||--o{ ACTIVITY_LOGS : "logged_in"
APPLICATIONS ||--o{ APPLICATION_STATUS_HISTORY : "tracks"
APPLICATIONS ||--o{ APPLICATION_PROGRESS : "tracks"
SLA_CONFIGURATIONS ||--o{ SLA_CONFIG_REMINDERS : "defines"
SLA_CONFIGURATIONS ||--o{ SLA_CONFIG_ESCALATIONS : "defines"
FNF_CASES ||--o{ FNF_LINE_ITEMS : "has"
FNF_DEPARTMENT_CLEARANCES ||--o{ FNF_LINE_ITEMS : "details"
USERS ||--o{ FNF_LINE_ITEMS : "added"
USERS ||--o{ APPLICATIONS : "currently_assigned"