Skip to content

Latest commit

 

History

History
212 lines (202 loc) · 5.39 KB

File metadata and controls

212 lines (202 loc) · 5.39 KB

erDiagram users { UUID id PK VARCHAR(256) user_name VARCHAR(256) normalized_user_name VARCHAR(256) email VARCHAR(256) normalized_email BIT email_confirmed TEXT password_hash VARCHAR(36) security_stamp VARCHAR(36) concurrency_stamp VARCHAR(50) phone_number BIT phone_number_confirmed BIT two_factor_enabled TIMESTAMPTZ lockout_end BIT lockout_enabled INT access_failed_count TIMESTAMPTZ created_at } aspnet_roles { UUID id PK VARCHAR(256) name VARCHAR(256) normalized_name VARCHAR(36) concurrency_stamp } aspnet_user_roles { UUID user_id PK, FK UUID role_id PK, FK } aspnet_user_claims { INT id PK UUID user_id FK VARCHAR(255) claim_type VARCHAR(255) claim_value } aspnet_user_logins { VARCHAR(128) login_provider PK VARCHAR(128) provider_key PK VARCHAR(255) provider_display_name UUID user_id FK } aspnet_user_tokens { UUID user_id PK, FK VARCHAR(128) login_provider PK VARCHAR(128) name PK TEXT value }

applicant {
    UUID user_id PK, FK
    TEXT professional_summary
    VARCHAR(50) phone
    VARCHAR(255) address
    VARCHAR(100) city
    VARCHAR(100) country
    VARCHAR(20) postal_code
    VARCHAR(2048) linked_in_url
    VARCHAR(2048) portfolio_url
}
recruiter {
    UUID user_id PK, FK
    VARCHAR(255) department
}
technical_lead {
    UUID user_id PK, FK
    VARCHAR(255) technical_specialty
}

job_postings {
    UUID id PK
    VARCHAR(255) title
    TEXT description
    INT status_id FK
    UUID created_by_id FK
    UUID assigned_technical_lead_id FK
    TIMESTAMPTZ created_at
}
applications {
    UUID id PK
    UUID applicant_id FK
    UUID job_post_id FK
    INT status_id FK
    INT ranking
    TIMESTAMPTZ applied_at
}

message_threads {
    UUID id PK
    VARCHAR(255) subject
}
message_thread_participants {
    UUID thread_id PK, FK
    UUID user_id PK, FK
}
messages {
    UUID id PK
    UUID thread_id FK
    UUID sender_id FK
    TEXT body
    TIMESTAMPTZ sent_at
}

documents {
    UUID id PK
    UUID applicant_id FK
    VARCHAR(255) filename
    VARCHAR(2048) file_url
    TIMESTAMPTZ uploaded_at
}
applicant_skills {
    UUID id PK
    UUID applicant_id FK
    INT skill_id FK
    INT proficiency_level_id FK
    INT years_of_experience
}
applicant_experience {
    UUID id PK
    UUID applicant_id FK
    VARCHAR(255) job_title
    VARCHAR(255) company_name
    TEXT description
    VARCHAR(255) location
    DATE start_date
    DATE end_date
}
applicant_education {
    UUID id PK
    UUID applicant_id FK
    VARCHAR(255) degree
    VARCHAR(255) institution
    VARCHAR(255) field_of_study
    DATE start_date
    DATE end_date
}
applicant_languages {
    UUID id PK
    UUID applicant_id FK
    VARCHAR(100) language
    INT proficiency_level_id FK
}
applicant_projects {
    UUID id PK
    UUID applicant_id FK
    VARCHAR(255) name
    TEXT description
    VARCHAR(255) role
    TEXT technologies
    DATE start_date
    DATE end_date
    VARCHAR(2048) url
}
applicant_certifications {
    UUID id PK
    UUID applicant_id FK
    VARCHAR(255) name
    VARCHAR(255) issuer
    DATE issue_date
    DATE expiration_date
    VARCHAR(255) credential_id
    VARCHAR(2048) credential_url
}

skills {
    INT id PK
    VARCHAR(100) name
}
job_posting_statuses {
    INT id PK
    VARCHAR(50) name
}
application_statuses {
    INT id PK
    VARCHAR(50) name
}
proficiency_levels {
    INT id PK
    VARCHAR(50) name
}

users ||--o{ aspnet_user_roles : has
aspnet_roles ||--o{ aspnet_user_roles : contains
users ||--o{ aspnet_user_claims : has
users ||--o{ aspnet_user_logins : logs_in_with
users ||--o{ aspnet_user_tokens : has
users ||--|| applicant : is_an
users ||--|| recruiter : is_a
users ||--|| technical_lead : is_a

recruiter ||--o{ job_postings : creates
technical_lead ||--o{ job_postings : is_assigned_to
job_postings ||--o{ applications : receives
applicant ||--o{ applications : submits

applicant ||--o{ documents : has
applicant ||--o{ applicant_skills : has
applicant ||--o{ applicant_experience : has
applicant ||--o{ applicant_education : has
applicant ||--o{ applicant_languages : knows
applicant ||--o{ applicant_projects : has
applicant ||--o{ applicant_certifications : has

job_posting_statuses ||--o{ job_postings : classifies
application_statuses ||--o{ applications : classifies
skills ||--o{ applicant_skills : is_a
proficiency_levels ||--o{ applicant_skills : measures
proficiency_levels ||--o{ applicant_languages : measures

users ||--o{ message_thread_participants : participates_in
message_threads ||--o{ message_thread_participants : has_participant
message_threads ||--o{ messages : has
users ||--o{ messages : sends