<aside> <img src="/icons/checklist_green.svg" alt="/icons/checklist_green.svg" width="40px" />

</aside>

Persistence Model

Table learner_profiles {
  user_id           uuid      [pk, ref: > users.id]
  bio               text      [null, note: 'Giới thiệu bản thân của học viên']
  date_of_birth     date      [null, note: 'Ngày sinh (nếu cần cho cấp độ độ tuổi)']
  gender            gender_enum [null, note: 'Nam/Nữ/Khác']
  education_level   varchar   [null, note: 'Trình độ học vấn (THPT, Đại học, v.v.)']
  interests         text      [null, note: 'Sở thích, lĩnh vực quan tâm']
  created_at        timestamp [default: now()]
  updated_at        timestamp [default: now()]
}
Table instructor_profiles {
  user_id           uuid      [pk, ref: > users.id]
  bio               text      [null, note: 'Tiểu sử, giới thiệu của giảng viên']
  cv_url            varchar   [null, note: 'Link/CV hoặc Portfolio ảnh/video']
  expertise         text      [null, note: 'Lĩnh vực chuyên môn, tags (ngôn ngữ, kỹ năng)']
  rating_average    numeric   [default: 0, note: 'Điểm đánh giá trung bình (tổng sao chia số review)']
  total_reviews     int       [default: 0, note: 'Tổng số đánh giá từ học viên']
  is_verified       bool      [default: false, note: 'Đã được admin xác thực/in kiểm duyệt?']
  created_at        timestamp [default: now()]
  updated_at        timestamp [default: now()]
}

Domain Use Cases

Create Learner Profile Command

Update Learner Profile Command

Create Instructor Profile Command

Update Instructor Profile Command

Approve Instructor Profile Command

Get Learner Profile Query

Get Instructor Profile Query


(TODO) Update Instructor Rating Command

(TODO) Archive Instructor Profile Command

(TODO) Archive Learner Profile Command