api/docs/history/2026-07-24-hapus-kode-plan.md

46 lines
1.5 KiB
Markdown

# Hapus Kolom Code dari Plan
**Tanggal:** 2026-07-24
**Status:** Selesai
## Tujuan
Menghapus kolom `code` dari tabel `plans` dan seluruh referensinya di API.
## Yang Dikerjakan
### 1. Model
- Hapus field `code: Mapped[str]` dari `Plan` model
- Hapus import `String` dari sqlalchemy (tidak dipakai lagi)
- Sebelum: `code`, `name`, `description`, `price`, `limits`, `is_active`
- Sesudah: `name`, `description`, `price`, `limits`, `is_active`
### 2. Schema
- Hapus `code` dari `PlanCreate`, `PlanUpdate`, `PlanResponse`
- Sebelum: `PlanCreate(code, name, description, price, limits)`
- Sesudah: `PlanCreate(name, description, price, limits)`
### 3. Service
- Hapus uniqueness check `code` di `create_plan()`
- Hapus uniqueness check `code` di `update_plan()`
### 4. Factory
- Hapus `code` dari `PlanFactory.definition()`
### 5. Tests
- Hapus semua referensi `code` dari test service dan API
- Hapus test `test_create_duplicate_code` dan `test_update_conflict_code`
## File yang Diubah
| File | Aksi | Detail |
|------|------|--------|
| `api/app/models/plan.py` | Diubah | Hapus field `code` |
| `api/app/schemas/plan.py` | Diubah | Hapus `code` dari Create, Update, Response |
| `api/app/services/plan_service.py` | Diubah | Hapus uniqueness check `code` |
| `api/app/factories/plan_factory.py` | Diubah | Hapus `code` dari definition |
| `api/tests/test_plan.py` | Diubah | Hapus referensi `code` dan test duplikasi |
## Notes
- Perlu jalankan SQL `ALTER TABLE plans DROP COLUMN code;` di database
- Tidak ada migrasi tool (Alembic), jadi harus manual via SQL