jaecoo-be/plan/development-plan.md

147 lines
3.0 KiB
Markdown

✅ 1. Tabel: users
Untuk menyimpan user aplikasi.
Field Type Notes
id (PK) uuid
name varchar(150)
email varchar(150) unique
password_hash text
role_id (FK) uuid
status enum(active, inactive) default active
created_at timestamp
updated_at timestamp
-------------------------------------------
✅ 2. Tabel: role
Field Type
id (PK) uuid
name varchar(100)
description text
created_at timestamp
updated_at timestamp
-------------------------------------------
✅ 3. Tabel: campaign_type
Jenis campaign umum (misalnya: artikel, short video, banner digital, publikasi medsos)
Field Type
id (PK) uuid
name varchar(150)
description text
created_at timestamp
updated_at timestamp
-------------------------------------------
✅ 4. Tabel: campaign_destination
Tujuan publikasi spesifik sesuai media/platform.
Contoh:
Website → news section
Instagram → feed, reels, story
Videotron → LED Baliho Jl Gatot Subroto
Twitter/X → timeline
Field Type Notes
id (PK) uuid
campaign_type_id (FK) uuid untuk mengelompokkan
sub_type varchar(100) IG Feed, Stories, TikTok, Videotron Mandiri Tower
name varchar(150) nama tujuan
description text
url varchar(255) opsional
is_active boolean default true
created_at timestamp
updated_at timestamp
-------------------------------------------
✅ 5. Tabel: campaign
Tabel utama campaign/artikel/post.
Field Type Notes
id (PK) uuid
title varchar(255) tambahan
campaign_type_id (FK) uuid
start_date date
end_date date
media_type_selected varchar(100) ex: web, medsos, videotron
media_item_selected uuid / json saran: bisa FK ke destination atau JSON array
purpose text
media_promote boolean yes/no
description text
creator_id (FK) uuid user pembuat
status enum(draft, waiting_approval, approved, rejected, published, archived) workflow
created_at timestamp
updated_at timestamp
-------------------------------------------
✅ 6. Tabel: campaign_file
Untuk file atau URL yang digunakan dalam campaign.
Field Type
id (PK) uuid
campaign_id (FK) uuid
type enum(url, file)
file_url text
external_url text
is_draft boolean
is_publish boolean
created_at timestamp
updated_at timestamp
-------------------------------------------
✅ 7. Tabel: campaign_destination_relation
Relasi campaign → media tujuan
Campaign bisa di-post ke banyak tempat sekaligus.
Field Type
id (PK) uuid
campaign_id (FK) uuid
destination_id (FK) uuid
scheduled_at timestamp
publish_status enum(pending, success, failed)
publish_response text
created_at timestamp
updated_at timestamp
-------------------------------------------
✅ 8. Tabel: campaign_approval
Untuk workflow persetujuan.
Field Type
id (PK) uuid
campaign_id (FK) uuid
approver_id (FK) uuid
status enum(pending, approved, rejected)
notes text
created_at timestamp
-------------------------------------------
✅ 9. Tabel: campaign_chat
Chat internal antar user di setiap campaign (komentar, diskusi revisi).
Field Type
id (PK) uuid
campaign_id (FK) uuid
sender_id (FK) uuid
message text
attachment_url text
created_at timestamp