Files
penyaluran_app/lib/app/data/models/petugas_desa_model.dart
Khafidh Fuadi 9995239115 Tambahkan dukungan image picker dan izin kamera untuk upload bukti serah terima
- Tambahkan paket image_picker untuk mengambil foto
- Perbarui AndroidManifest.xml dan Info.plist untuk izin kamera dan galeri
- Tambahkan metode pickfotoBuktiSerahTerima di PenitipanBantuanController
- Buat dialog verifikasi dengan fitur upload foto bukti serah terima
- Perbarui model PenitipanBantuanModel untuk mendukung foto bukti
- Integrasikan upload file ke Supabase storage
2025-03-12 07:00:27 +07:00

60 lines
1.5 KiB
Dart

import 'dart:convert';
class PetugasDesaModel {
final String? id;
final String? nama;
final String? alamatLengkap;
final String? noTelp;
final String? email;
final String? jabatan;
final String? userId;
final DateTime? createdAt;
final DateTime? updatedAt;
PetugasDesaModel({
this.id,
this.nama,
this.alamatLengkap,
this.noTelp,
this.email,
this.jabatan,
this.userId,
this.createdAt,
this.updatedAt,
});
factory PetugasDesaModel.fromRawJson(String str) =>
PetugasDesaModel.fromJson(json.decode(str));
String toRawJson() => json.encode(toJson());
factory PetugasDesaModel.fromJson(Map<String, dynamic> json) =>
PetugasDesaModel(
id: json["id"],
nama: json["nama"],
alamatLengkap: json["alamat_lengkap"],
noTelp: json["no_telp"],
email: json["email"],
jabatan: json["jabatan"],
userId: json["user_id"],
createdAt: json["created_at"] != null
? DateTime.parse(json["created_at"])
: null,
updatedAt: json["updated_at"] != null
? DateTime.parse(json["updated_at"])
: null,
);
Map<String, dynamic> toJson() => {
"id": id,
"nama": nama,
"alamat_lengkap": alamatLengkap,
"no_telp": noTelp,
"email": email,
"jabatan": jabatan,
"user_id": userId,
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}