Update default user status to ONBOARDING and add status field to UserCreate schema
This commit is contained in:
parent
0893cc5d34
commit
0355781852
@ -17,7 +17,7 @@ class User(Base):
|
||||
password: Mapped[str] = mapped_column(String(255))
|
||||
email_verified_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True)
|
||||
tenant_id: Mapped[str | None] = mapped_column(CHAR(36), nullable=True)
|
||||
status: Mapped[str] = mapped_column(String(20), default="INACTIVE")
|
||||
status: Mapped[str] = mapped_column(String(20), default="ONBOARDING")
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now)
|
||||
updated_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True, onupdate=datetime.now)
|
||||
deleted_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True)
|
||||
|
||||
@ -7,6 +7,7 @@ class UserCreate(BaseModel):
|
||||
email: EmailStr
|
||||
username: str
|
||||
password: str
|
||||
status: str = "ONBOARDING"
|
||||
full_name: str
|
||||
phone: str | None = None
|
||||
address: str | None = None
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
# Perbaikan User Status dan Validasi Form
|
||||
|
||||
**Tanggal:** 2026-07-25
|
||||
**Status:** Selesai
|
||||
|
||||
## Tujuan
|
||||
- Menyesuaikan default status user sesuai DBML (ONBOARDING)
|
||||
- Memperbaiki validasi form agar pesan error berasal dari server
|
||||
- Menambahkan PhoneInput component reusable
|
||||
|
||||
## Yang Dikerjakan
|
||||
|
||||
### 1. Default Status User
|
||||
- Model `User.status` sebelumnya `default="INACTIVE"` diubah menjadi `default="ONBOARDING"`
|
||||
- Schema `UserCreate` ditambahkan field `status: str = "ONBOARDING"` agar bisa dikirim dari frontend
|
||||
- Service `create_user` sekarang menyetel `status=data.status`
|
||||
|
||||
### 2. Schema UserCreate
|
||||
- Sebelum: tidak ada field `status`
|
||||
- Sesudah: `status: str = "ONBOARDING"`
|
||||
|
||||
## File yang Diubah
|
||||
|
||||
| File | Aksi | Detail |
|
||||
|------|------|--------|
|
||||
| `app/models/user.py` | Diubah | Default status `INACTIVE` → `ONBOARDING` |
|
||||
| `app/schemas/user.py` | Diubah | Ditambah field `status` di `UserCreate` |
|
||||
| `app/services/user_service.py` | Diubah | `create_user` menyetel `status=data.status` |
|
||||
|
||||
## Notes
|
||||
- Frontend create page tidak perlu kirim status karena schema sudah default ONBOARDING
|
||||
- Filter tabel users menggunakan query param `?status=` di endpoint GET /users
|
||||
Loading…
Reference in New Issue
Block a user