ambil data stok bantuan

This commit is contained in:
Khafidh Fuadi
2025-03-11 12:44:32 +07:00
parent d24832ea82
commit eec06ba79d
57 changed files with 4306 additions and 1590 deletions

View File

@ -1,19 +1,21 @@
import 'dart:convert';
class BentukBantuanModel {
final String id;
final String nama;
final String? id;
final String? nama;
final String? deskripsi;
final String? kategori;
final DateTime createdAt;
final String? satuan;
final DateTime? createdAt;
final DateTime? updatedAt;
BentukBantuanModel({
required this.id,
required this.nama,
this.id,
this.nama,
this.deskripsi,
this.kategori,
required this.createdAt,
this.satuan,
this.createdAt,
this.updatedAt,
});
@ -28,10 +30,13 @@ class BentukBantuanModel {
nama: json["nama"],
deskripsi: json["deskripsi"],
kategori: json["kategori"],
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
satuan: json["satuan"],
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() => {
@ -39,7 +44,8 @@ class BentukBantuanModel {
"nama": nama,
"deskripsi": deskripsi,
"kategori": kategori,
"created_at": createdAt.toIso8601String(),
"satuan": satuan,
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,50 @@
import 'dart:convert';
class DesaModel {
final String id;
final String nama;
final String? kecamatan;
final String? kabupaten;
final String? provinsi;
final DateTime? createdAt;
final DateTime? updatedAt;
DesaModel({
required this.id,
required this.nama,
this.kecamatan,
this.kabupaten,
this.provinsi,
this.createdAt,
this.updatedAt,
});
factory DesaModel.fromRawJson(String str) =>
DesaModel.fromJson(json.decode(str));
String toRawJson() => json.encode(toJson());
factory DesaModel.fromJson(Map<String, dynamic> json) => DesaModel(
id: json["id"],
nama: json["nama"],
kecamatan: json["kecamatan"],
kabupaten: json["kabupaten"],
provinsi: json["provinsi"],
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,
"kecamatan": kecamatan,
"kabupaten": kabupaten,
"provinsi": provinsi,
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -1,23 +1,27 @@
import 'dart:convert';
class DonaturModel {
final String id;
final String nama;
final String? id;
final String? nama;
final String? alamat;
final String? noTelp;
final String? telepon;
final String? email;
final String? jenisDonatur; // Individu, Organisasi, Perusahaan, dll
final DateTime createdAt;
final String? jenis;
final String? deskripsi;
final String? status;
final DateTime? createdAt;
final DateTime? updatedAt;
DonaturModel({
required this.id,
required this.nama,
this.id,
this.nama,
this.alamat,
this.noTelp,
this.telepon,
this.email,
this.jenisDonatur,
required this.createdAt,
this.jenis,
this.deskripsi,
this.status,
this.createdAt,
this.updatedAt,
});
@ -30,23 +34,29 @@ class DonaturModel {
id: json["id"],
nama: json["nama"],
alamat: json["alamat"],
noTelp: json["no_telp"],
telepon: json["telepon"],
email: json["email"],
jenisDonatur: json["jenis_donatur"],
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
jenis: json["jenis"],
deskripsi: json["deskripsi"],
status: json["status"],
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": alamat,
"no_telp": noTelp,
"telepon": telepon,
"email": email,
"jenis_donatur": jenisDonatur,
"created_at": createdAt.toIso8601String(),
"jenis": jenis,
"deskripsi": deskripsi,
"status": status,
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -1,34 +1,34 @@
import 'dart:convert';
class LaporanModel {
final String id;
final String judul;
final String? id;
final String? judul;
final String? deskripsi;
final String jenis; // Contoh: 'penyaluran', 'penitipan', 'pengaduan'
final String? jenis; // Contoh: 'PENYALURAN', 'STOK_BANTUAN', 'PENERIMA'
final String?
referensiId; // ID dari entitas yang dilaporkan (penyaluran, penitipan, dll)
final String status; // Contoh: 'draft', 'final', 'disetujui'
final String? userId; // Pengguna yang membuat laporan
final String? status; // Contoh: 'draft', 'final', 'disetujui'
final String? petugasId; // Pengguna yang membuat laporan
final List<String>? fileUrls; // URL file laporan (PDF, Excel, dll)
final DateTime periodeAwal;
final DateTime periodeAkhir;
final DateTime tanggalLaporan;
final DateTime createdAt;
final DateTime? tanggalMulai;
final DateTime? tanggalSelesai;
final DateTime? tanggalLaporan;
final DateTime? createdAt;
final DateTime? updatedAt;
LaporanModel({
required this.id,
required this.judul,
this.id,
this.judul,
this.deskripsi,
required this.jenis,
this.jenis,
this.referensiId,
required this.status,
this.userId,
this.status,
this.petugasId,
this.fileUrls,
required this.periodeAwal,
required this.periodeAkhir,
required this.tanggalLaporan,
required this.createdAt,
this.tanggalMulai,
this.tanggalSelesai,
this.tanggalLaporan,
this.createdAt,
this.updatedAt,
});
@ -44,17 +44,29 @@ class LaporanModel {
jenis: json["jenis"],
referensiId: json["referensi_id"],
status: json["status"],
userId: json["user_id"],
petugasId: json["petugas_id"] ?? json["user_id"],
fileUrls: json["file_urls"] == null
? null
: List<String>.from(json["file_urls"].map((x) => x)),
periodeAwal: DateTime.parse(json["periode_awal"]),
periodeAkhir: DateTime.parse(json["periode_akhir"]),
tanggalLaporan: DateTime.parse(json["tanggal_laporan"]),
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
tanggalMulai: json["tanggal_mulai"] != null
? DateTime.parse(json["tanggal_mulai"])
: json["periode_awal"] != null
? DateTime.parse(json["periode_awal"])
: null,
tanggalSelesai: json["tanggal_selesai"] != null
? DateTime.parse(json["tanggal_selesai"])
: json["periode_akhir"] != null
? DateTime.parse(json["periode_akhir"])
: null,
tanggalLaporan: json["tanggal_laporan"] != null
? DateTime.parse(json["tanggal_laporan"])
: null,
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() => {
@ -64,14 +76,14 @@ class LaporanModel {
"jenis": jenis,
"referensi_id": referensiId,
"status": status,
"user_id": userId,
"petugas_id": petugasId,
"file_urls": fileUrls == null
? null
: List<dynamic>.from(fileUrls!.map((x) => x)),
"periode_awal": periodeAwal.toIso8601String(),
"periode_akhir": periodeAkhir.toIso8601String(),
"tanggal_laporan": tanggalLaporan.toIso8601String(),
"created_at": createdAt.toIso8601String(),
"tanggal_mulai": tanggalMulai?.toIso8601String(),
"tanggal_selesai": tanggalSelesai?.toIso8601String(),
"tanggal_laporan": tanggalLaporan?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -46,9 +46,8 @@ class LokasiPenyaluranModel {
kabupaten: json["kabupaten"],
provinsi: json["provinsi"],
kodePos: json["kode_pos"],
latitude: json["latitude"] != null ? json["latitude"].toDouble() : null,
longitude:
json["longitude"] != null ? json["longitude"].toDouble() : null,
latitude: json["latitude"]?.toDouble(),
longitude: json["longitude"]?.toDouble(),
petugasDesaId: json["petugas_desa_id"],
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null

View File

@ -1,25 +1,27 @@
import 'dart:convert';
class NotifikasiModel {
final String id;
final String judul;
final String pesan;
final String? jenis; // Contoh: 'penyaluran', 'penitipan', 'pengaduan'
final String? referensiId; // ID dari entitas yang terkait notifikasi
final String? userId; // Pengguna yang menerima notifikasi
final bool dibaca;
final DateTime createdAt;
final String? id;
final String? userId;
final String? judul;
final String? pesan;
final String? jenis;
final String? referensiId;
final bool? dibaca;
final DateTime? tanggalNotifikasi;
final DateTime? createdAt;
final DateTime? updatedAt;
NotifikasiModel({
required this.id,
required this.judul,
required this.pesan,
this.id,
this.userId,
this.judul,
this.pesan,
this.jenis,
this.referensiId,
this.userId,
this.dibaca = false,
required this.createdAt,
this.dibaca,
this.tanggalNotifikasi,
this.createdAt,
this.updatedAt,
});
@ -31,27 +33,33 @@ class NotifikasiModel {
factory NotifikasiModel.fromJson(Map<String, dynamic> json) =>
NotifikasiModel(
id: json["id"],
userId: json["user_id"],
judul: json["judul"],
pesan: json["pesan"],
jenis: json["jenis"],
referensiId: json["referensi_id"],
userId: json["user_id"],
dibaca: json["dibaca"] ?? false,
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
dibaca: json["dibaca"],
tanggalNotifikasi: json["tanggal_notifikasi"] != null
? DateTime.parse(json["tanggal_notifikasi"])
: null,
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,
"user_id": userId,
"judul": judul,
"pesan": pesan,
"jenis": jenis,
"referensi_id": referensiId,
"user_id": userId,
"dibaca": dibaca,
"created_at": createdAt.toIso8601String(),
"tanggal_notifikasi": tanggalNotifikasi?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -1,25 +1,29 @@
import 'dart:convert';
class PengaduanModel {
final String id;
final String judul;
final String deskripsi;
final String? userId; // Pengguna yang membuat pengaduan
final String? penyaluranBantuanId; // Referensi ke PenyaluranBantuan
final String status; // Contoh: 'pending', 'diproses', 'selesai'
final List<String>? gambarUrls; // URL gambar bukti pengaduan
final DateTime createdAt;
final String? id;
final String? judul;
final String? deskripsi;
final String? status;
final String? kategori;
final String? pelapor;
final String? kontakPelapor;
final List<String>? gambarUrls;
final DateTime? tanggalPengaduan;
final DateTime? createdAt;
final DateTime? updatedAt;
PengaduanModel({
required this.id,
required this.judul,
required this.deskripsi,
this.userId,
this.penyaluranBantuanId,
required this.status,
this.id,
this.judul,
this.deskripsi,
this.status,
this.kategori,
this.pelapor,
this.kontakPelapor,
this.gambarUrls,
required this.createdAt,
this.tanggalPengaduan,
this.createdAt,
this.updatedAt,
});
@ -32,29 +36,37 @@ class PengaduanModel {
id: json["id"],
judul: json["judul"],
deskripsi: json["deskripsi"],
userId: json["user_id"],
penyaluranBantuanId: json["penyaluran_bantuan_id"],
status: json["status"],
kategori: json["kategori"],
pelapor: json["pelapor"],
kontakPelapor: json["kontak_pelapor"],
gambarUrls: json["gambar_urls"] == null
? null
: List<String>.from(json["gambar_urls"].map((x) => x)),
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
tanggalPengaduan: json["tanggal_pengaduan"] != null
? DateTime.parse(json["tanggal_pengaduan"])
: null,
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,
"judul": judul,
"deskripsi": deskripsi,
"user_id": userId,
"penyaluran_bantuan_id": penyaluranBantuanId,
"status": status,
"kategori": kategori,
"pelapor": pelapor,
"kontak_pelapor": kontakPelapor,
"gambar_urls": gambarUrls == null
? null
: List<dynamic>.from(gambarUrls!.map((x) => x)),
"created_at": createdAt.toIso8601String(),
"tanggal_pengaduan": tanggalPengaduan?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -1,31 +1,35 @@
import 'dart:convert';
class PenitipanBantuanModel {
final String id;
final String? donaturId; // Referensi ke Donatur
final String? bentukBantuanId; // Referensi ke BentukBantuan
final String? sumberBantuanId; // Referensi ke SumberBantuan
final double jumlah;
final String? satuan; // Contoh: kg, buah, paket, dll
final String? id;
final String? donaturId;
final String? bentukBantuanId;
final String? nama;
final double? jumlah;
final String? satuan;
final String? deskripsi;
final String status; // Contoh: 'diterima', 'disalurkan', 'ditolak'
final List<String>? gambarUrls; // URL gambar bukti penitipan
final DateTime tanggalPenitipan;
final DateTime createdAt;
final String? status;
final String? alasanPenolakan;
final List<String>? gambarUrls;
final DateTime? tanggalPenitipan;
final DateTime? tanggalVerifikasi;
final DateTime? createdAt;
final DateTime? updatedAt;
PenitipanBantuanModel({
required this.id,
this.id,
this.donaturId,
this.bentukBantuanId,
this.sumberBantuanId,
required this.jumlah,
this.nama,
this.jumlah,
this.satuan,
this.deskripsi,
required this.status,
this.status,
this.alasanPenolakan,
this.gambarUrls,
required this.tanggalPenitipan,
required this.createdAt,
this.tanggalPenitipan,
this.tanggalVerifikasi,
this.createdAt,
this.updatedAt,
});
@ -39,35 +43,45 @@ class PenitipanBantuanModel {
id: json["id"],
donaturId: json["donatur_id"],
bentukBantuanId: json["bentuk_bantuan_id"],
sumberBantuanId: json["sumber_bantuan_id"],
jumlah: json["jumlah"].toDouble(),
nama: json["nama"],
jumlah: json["jumlah"] != null ? json["jumlah"].toDouble() : 0.0,
satuan: json["satuan"],
deskripsi: json["deskripsi"],
status: json["status"],
alasanPenolakan: json["alasan_penolakan"],
gambarUrls: json["gambar_urls"] == null
? null
: List<String>.from(json["gambar_urls"].map((x) => x)),
tanggalPenitipan: DateTime.parse(json["tanggal_penitipan"]),
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
tanggalPenitipan: json["tanggal_penitipan"] != null
? DateTime.parse(json["tanggal_penitipan"])
: null,
tanggalVerifikasi: json["tanggal_verifikasi"] != null
? DateTime.parse(json["tanggal_verifikasi"])
: null,
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,
"donatur_id": donaturId,
"bentuk_bantuan_id": bentukBantuanId,
"sumber_bantuan_id": sumberBantuanId,
"nama": nama,
"jumlah": jumlah,
"satuan": satuan,
"deskripsi": deskripsi,
"status": status,
"alasan_penolakan": alasanPenolakan,
"gambar_urls": gambarUrls == null
? null
: List<dynamic>.from(gambarUrls!.map((x) => x)),
"tanggal_penitipan": tanggalPenitipan.toIso8601String(),
"created_at": createdAt.toIso8601String(),
"tanggal_penitipan": tanggalPenitipan?.toIso8601String(),
"tanggal_verifikasi": tanggalVerifikasi?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -1,31 +1,29 @@
import 'dart:convert';
class PenyaluranBantuanModel {
final String id;
final String? penitipanBantuanId; // Referensi ke PenitipanBantuan
final String? lokasiPenyaluranId; // Referensi ke LokasiPenyaluran
final String? petugasDesaId; // Referensi ke PetugasDesa
final double jumlah;
final String? satuan; // Contoh: kg, buah, paket, dll
final String? id;
final String? judul;
final String? deskripsi;
final String status; // Contoh: 'diproses', 'disalurkan', 'dibatalkan'
final List<String>? gambarUrls; // URL gambar bukti penyaluran
final DateTime tanggalPenyaluran;
final DateTime createdAt;
final String? lokasiPenyaluranId;
final String? petugasId;
final String? status;
final String? alasanPenolakan;
final DateTime? tanggalPenjadwalan;
final DateTime? tanggalPenyaluran;
final DateTime? createdAt;
final DateTime? updatedAt;
PenyaluranBantuanModel({
required this.id,
this.penitipanBantuanId,
this.lokasiPenyaluranId,
this.petugasDesaId,
required this.jumlah,
this.satuan,
this.id,
this.judul,
this.deskripsi,
required this.status,
this.gambarUrls,
required this.tanggalPenyaluran,
required this.createdAt,
this.lokasiPenyaluranId,
this.petugasId,
this.status,
this.alasanPenolakan,
this.tanggalPenjadwalan,
this.tanggalPenyaluran,
this.createdAt,
this.updatedAt,
});
@ -37,37 +35,37 @@ class PenyaluranBantuanModel {
factory PenyaluranBantuanModel.fromJson(Map<String, dynamic> json) =>
PenyaluranBantuanModel(
id: json["id"],
penitipanBantuanId: json["penitipan_bantuan_id"],
lokasiPenyaluranId: json["lokasi_penyaluran_id"],
petugasDesaId: json["petugas_desa_id"],
jumlah: json["jumlah"].toDouble(),
satuan: json["satuan"],
judul: json["judul"],
deskripsi: json["deskripsi"],
lokasiPenyaluranId: json["lokasi_penyaluran_id"],
petugasId: json["petugas_id"],
status: json["status"],
gambarUrls: json["gambar_urls"] == null
? null
: List<String>.from(json["gambar_urls"].map((x) => x)),
tanggalPenyaluran: DateTime.parse(json["tanggal_penyaluran"]),
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
alasanPenolakan: json["alasan_penolakan"],
tanggalPenjadwalan: json["tanggal_penjadwalan"] != null
? DateTime.parse(json["tanggal_penjadwalan"])
: null,
tanggalPenyaluran: json["tanggal_penyaluran"] != null
? DateTime.parse(json["tanggal_penyaluran"])
: null,
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,
"penitipan_bantuan_id": penitipanBantuanId,
"lokasi_penyaluran_id": lokasiPenyaluranId,
"petugas_desa_id": petugasDesaId,
"jumlah": jumlah,
"satuan": satuan,
"judul": judul,
"deskripsi": deskripsi,
"lokasi_penyaluran_id": lokasiPenyaluranId,
"petugas_id": petugasId,
"status": status,
"gambar_urls": gambarUrls == null
? null
: List<dynamic>.from(gambarUrls!.map((x) => x)),
"tanggal_penyaluran": tanggalPenyaluran.toIso8601String(),
"created_at": createdAt.toIso8601String(),
"alasan_penolakan": alasanPenolakan,
"tanggal_penjadwalan": tanggalPenjadwalan?.toIso8601String(),
"tanggal_penyaluran": tanggalPenyaluran?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -1,27 +1,31 @@
import 'dart:convert';
class StokBantuanModel {
final String id;
final String bentukBantuanId; // Referensi ke BentukBantuan
final double jumlahMasuk;
final double jumlahKeluar;
final double stokSisa;
final String? id;
final String? nama;
final String? bentukBantuanId;
final String? sumberBantuanId;
final double? jumlah;
final String? satuan;
final String? catatan;
final DateTime tanggalUpdate;
final DateTime createdAt;
final String? deskripsi;
final String? status;
final DateTime? tanggalMasuk;
final DateTime? tanggalKadaluarsa;
final DateTime? createdAt;
final DateTime? updatedAt;
StokBantuanModel({
required this.id,
required this.bentukBantuanId,
required this.jumlahMasuk,
required this.jumlahKeluar,
required this.stokSisa,
this.id,
this.nama,
this.bentukBantuanId,
this.sumberBantuanId,
this.jumlah,
this.satuan,
this.catatan,
required this.tanggalUpdate,
required this.createdAt,
this.deskripsi,
this.status,
this.tanggalMasuk,
this.tanggalKadaluarsa,
this.createdAt,
this.updatedAt,
});
@ -33,29 +37,39 @@ class StokBantuanModel {
factory StokBantuanModel.fromJson(Map<String, dynamic> json) =>
StokBantuanModel(
id: json["id"],
nama: json["nama"],
bentukBantuanId: json["bentuk_bantuan_id"],
jumlahMasuk: json["jumlah_masuk"].toDouble(),
jumlahKeluar: json["jumlah_keluar"].toDouble(),
stokSisa: json["stok_sisa"].toDouble(),
sumberBantuanId: json["sumber_bantuan_id"],
jumlah: json["jumlah"] != null ? json["jumlah"].toDouble() : 0.0,
satuan: json["satuan"],
catatan: json["catatan"],
tanggalUpdate: DateTime.parse(json["tanggal_update"]),
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
deskripsi: json["deskripsi"],
status: json["status"],
tanggalMasuk: json["tanggal_masuk"] != null
? DateTime.parse(json["tanggal_masuk"])
: null,
tanggalKadaluarsa: json["tanggal_kadaluarsa"] != null
? DateTime.parse(json["tanggal_kadaluarsa"])
: null,
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,
"bentuk_bantuan_id": bentukBantuanId,
"jumlah_masuk": jumlahMasuk,
"jumlah_keluar": jumlahKeluar,
"stok_sisa": stokSisa,
"sumber_bantuan_id": sumberBantuanId,
"jumlah": jumlah,
"satuan": satuan,
"catatan": catatan,
"tanggal_update": tanggalUpdate.toIso8601String(),
"created_at": createdAt.toIso8601String(),
"deskripsi": deskripsi,
"status": status,
"tanggal_masuk": tanggalMasuk?.toIso8601String(),
"tanggal_kadaluarsa": tanggalKadaluarsa?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -1,27 +1,25 @@
import 'dart:convert';
class TindakanPengaduanModel {
final String id;
final String pengaduanId; // Referensi ke Pengaduan
final String? userId; // Pengguna yang melakukan tindakan
final String tindakan; // Deskripsi tindakan yang dilakukan
final String status; // Contoh: 'diproses', 'selesai'
final String? id;
final String? pengaduanId;
final String? tindakan;
final String? catatan;
final List<String>? gambarUrls; // URL gambar bukti tindakan
final DateTime tanggalTindakan;
final DateTime createdAt;
final String? status;
final String? petugasId;
final DateTime? tanggalTindakan;
final DateTime? createdAt;
final DateTime? updatedAt;
TindakanPengaduanModel({
required this.id,
required this.pengaduanId,
this.userId,
required this.tindakan,
required this.status,
this.id,
this.pengaduanId,
this.tindakan,
this.catatan,
this.gambarUrls,
required this.tanggalTindakan,
required this.createdAt,
this.status,
this.petugasId,
this.tanggalTindakan,
this.createdAt,
this.updatedAt,
});
@ -34,32 +32,30 @@ class TindakanPengaduanModel {
TindakanPengaduanModel(
id: json["id"],
pengaduanId: json["pengaduan_id"],
userId: json["user_id"],
tindakan: json["tindakan"],
status: json["status"],
catatan: json["catatan"],
gambarUrls: json["gambar_urls"] == null
? null
: List<String>.from(json["gambar_urls"].map((x) => x)),
tanggalTindakan: DateTime.parse(json["tanggal_tindakan"]),
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
status: json["status"],
petugasId: json["petugas_id"],
tanggalTindakan: json["tanggal_tindakan"] != null
? DateTime.parse(json["tanggal_tindakan"])
: null,
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,
"pengaduan_id": pengaduanId,
"user_id": userId,
"tindakan": tindakan,
"status": status,
"catatan": catatan,
"gambar_urls": gambarUrls == null
? null
: List<dynamic>.from(gambarUrls!.map((x) => x)),
"tanggal_tindakan": tanggalTindakan.toIso8601String(),
"created_at": createdAt.toIso8601String(),
"status": status,
"petugas_id": petugasId,
"tanggal_tindakan": tanggalTindakan?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -1,3 +1,5 @@
import 'package:penyaluran_app/app/data/models/desa_model.dart';
class UserModel {
final String id;
final String email;
@ -5,6 +7,8 @@ class UserModel {
final String? avatar;
final String role;
final bool isActive;
final DesaModel? desa;
final String? desaId;
final DateTime? lastLogin;
final DateTime? createdAt;
final DateTime? updatedAt;
@ -16,27 +20,41 @@ class UserModel {
this.avatar,
required this.role,
this.isActive = true,
this.desa,
this.desaId,
this.lastLogin,
this.createdAt,
this.updatedAt,
});
factory UserModel.fromJson(Map<String, dynamic> json) {
if (json['id'] == null || json['email'] == null) {
throw Exception('UserModel: id dan email tidak boleh null');
}
// Parse desa jika ada
DesaModel? desaModel;
if (json['desa'] != null && json['desa'] is Map<String, dynamic>) {
desaModel = DesaModel.fromJson(json['desa'] as Map<String, dynamic>);
}
return UserModel(
id: json['id'],
email: json['email'],
name: json['name'],
avatar: json['avatar'],
desa: desaModel,
desaId: json['desa_id'],
role: json['role'] ?? 'WARGA',
isActive: json['is_active'] ?? true,
lastLogin: json['last_login'] != null
? DateTime.parse(json['last_login'])
: null,
createdAt: json['CREATED_AT'] != null
? DateTime.parse(json['CREATED_AT'])
createdAt: json['created_at'] != null
? DateTime.parse(json['created_at'])
: null,
updatedAt: json['UPDATED_AT'] != null
? DateTime.parse(json['UPDATED_AT'])
updatedAt: json['updated_at'] != null
? DateTime.parse(json['updated_at'])
: null,
);
}
@ -47,11 +65,13 @@ class UserModel {
'email': email,
'name': name,
'avatar': avatar,
'desa_id': desaId,
'desa': desa?.toJson(),
'role': role,
'is_active': isActive,
'last_login': lastLogin?.toIso8601String(),
'CREATED_AT': createdAt?.toIso8601String(),
'UPDATED_AT': updatedAt?.toIso8601String(),
'created_at': createdAt?.toIso8601String(),
'updated_at': updatedAt?.toIso8601String(),
};
}
@ -60,6 +80,8 @@ class UserModel {
String? email,
String? name,
String? avatar,
DesaModel? desa,
String? desaId,
String? role,
bool? isActive,
DateTime? lastLogin,
@ -71,6 +93,8 @@ class UserModel {
email: email ?? this.email,
name: name ?? this.name,
avatar: avatar ?? this.avatar,
desa: desa ?? this.desa,
desaId: desaId ?? this.desaId,
role: role ?? this.role,
isActive: isActive ?? this.isActive,
lastLogin: lastLogin ?? this.lastLogin,
@ -79,3 +103,43 @@ class UserModel {
);
}
}
class User {
final String? id;
final String? name;
final String? email;
final String? phone;
final String? role;
final String? token;
User({
this.id,
this.name,
this.email,
this.phone,
this.role,
this.token,
});
factory User.fromJson(Map<String, dynamic> json) {
return User(
id: json['id'],
name: json['name'],
email: json['email'],
phone: json['phone'],
role: json['role'],
token: json['token'],
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'email': email,
'phone': phone,
'role': role,
'token': token,
};
}
}

View File

@ -2,35 +2,39 @@ import 'dart:convert';
// warga == penerima bantuan
class WargaModel {
final String id;
final String nama;
final String? id;
final String? nama;
final String? nik;
final String? alamat;
final String? desa;
final String? kecamatan;
final String? kabupaten;
final String? provinsi;
final String? noTelp;
final String? telepon;
final String? email;
final String? catatan;
final String? kategori; // Contoh: 'lansia', 'disabilitas', 'miskin', dll
final String? status; // Contoh: 'aktif', 'nonaktif'
final String? status; // Contoh: 'AKTIF', 'NONAKTIF'
final String? lokasiPenyaluranId; // Referensi ke LokasiPenyaluran
final DateTime createdAt;
final DateTime? createdAt;
final DateTime? updatedAt;
WargaModel({
required this.id,
required this.nama,
this.id,
this.nama,
this.nik,
this.alamat,
this.desa,
this.kecamatan,
this.kabupaten,
this.provinsi,
this.noTelp,
this.telepon,
this.email,
this.catatan,
this.kategori,
this.status,
this.lokasiPenyaluranId,
required this.createdAt,
this.createdAt,
this.updatedAt,
});
@ -48,14 +52,18 @@ class WargaModel {
kecamatan: json["kecamatan"],
kabupaten: json["kabupaten"],
provinsi: json["provinsi"],
noTelp: json["no_telp"],
telepon: json["telepon"] ?? json["no_telp"],
email: json["email"],
catatan: json["catatan"],
kategori: json["kategori"],
status: json["status"],
lokasiPenyaluranId: json["lokasi_penyaluran_id"],
createdAt: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
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() => {
@ -67,11 +75,13 @@ class WargaModel {
"kecamatan": kecamatan,
"kabupaten": kabupaten,
"provinsi": provinsi,
"no_telp": noTelp,
"telepon": telepon,
"email": email,
"catatan": catatan,
"kategori": kategori,
"status": status,
"lokasi_penyaluran_id": lokasiPenyaluranId,
"created_at": createdAt.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}