2024-06-15 16:59:12 +07:00

207 lines
5.0 KiB
Java

package org.sadigit.entity;
import java.security.Timestamp;
import java.time.LocalDateTime;
import org.locationtech.jts.geom.Geometry;
import org.sadigit.adapter.GeometryAdapter;
import jakarta.json.bind.annotation.JsonbTypeAdapter;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
@Entity
@Getter
@Setter
@Table(name = "keluhan", schema = "apkt_transactional")
public class Keluhan {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "id_pelanggan_no_meter")
private Long idPelangganNoMeter;
@Column(name = "id_ulp")
private Long idUlp;
@Column(name = "id_tipe_permasalahan")
private Long idTipePermasalahan;
@Column(name = "alamat_pelanggan", length = 255)
private String alamatPelanggan;
@Column(name = "nama_pelapor", length = 255)
private String namaPelapor;
@Column(name = "telepon_pelapor", length = 255)
private String teleponPelapor;
@Column(name = "hp_pelapor", length = 255)
private String hpPelapor;
@Column(name = "fax_pelapor", length = 255)
private String faxPelapor;
@Column(name = "email_pelapor", length = 255)
private String emailPelapor;
@Column(name = "alamat_pelapor", length = 4000)
private String alamatPelapor;
@Column(length = 255)
private String media;
@Column(name = "waktu_padam", length = 255)
private LocalDateTime waktuPadam;
@Column(length = 255)
private String konfirmasi;
@JsonbTypeAdapter(GeometryAdapter.class)
@Column(name = "lokasi", columnDefinition = "geometry(Point,4326)")
private Geometry lokasi;
@Column(name = "no_laporan")
private String noLaporan;
@Column(length = 4000)
private String keterangan;
@Column(name = "created_date")
private LocalDateTime createdDate;
@Column(name = "created_by")
private Long createdBy;
@Column(name = "updated_date")
private LocalDateTime updatedDate;
@Column(name = "updated_by")
private Long updatedBy;
@Column(name = "status_akhir", length = 50)
private String statusAkhir;
@Column(name = "tipe_wo")
private Long tipeWo;
private Long unit;
private Long eskalasi;
private String permasalahan;
@Column(name = "waktu_lapor")
private LocalDateTime waktuLapor;
@Column(name = "id_regu")
private Long idRegu;
@Column(name = "waktu_penugasan")
private LocalDateTime waktuPenugasan;
@Column(name = "waktu_perjalanan")
private LocalDateTime waktuPerjalanan;
@Column(name = "waktu_pengerjaan")
private LocalDateTime waktuPengerjaan;
@Column(name = "waktu_nyala_sementara")
private LocalDateTime waktuNyalaSementara;
@Column(name = "waktu_nyala")
private LocalDateTime waktuNyala;
@Column(name = "waktu_batal")
private LocalDateTime waktuBatal;
@Column(name = "waktu_selesai")
private LocalDateTime waktuSelesai;
@Column(name = "tipe_keluhan")
private Long tipeKeluhan;
@Column(name = "tipe_sub_keluhan")
private Long tipeSubKeluhan;
private String alasan;
private String patokan;
private Long jarak;
@Column(name = "id_kelurahan")
private Long idKelurahan;
private String fax;
@Column(name = "keterangan_lokasi")
private String keteranganLokasi;
@Column(name = "waktu_fax")
private LocalDateTime waktuFax;
@Column(name = "nama_media")
private String namaMedia;
@Column(name = "waktu_media")
private LocalDateTime waktuMedia;
@Column(name = "id_posko")
private Long idPosko;
@Column(name = "respon_pelanggan")
private String responPelanggan;
private String uraian;
private String pelaksana;
@Column(name = "id_tarif_daya")
private Long idTarifDaya;
private String summary;
@Column(name = "jumlah_lapor")
private Long jumlahLapor;
private String deskripsi;
@Column(name = "waktu_konfirmasi")
private LocalDateTime waktuKonfirmasi;
@Column(name = "waktu_menunggu_tanggapan_supervisor")
private LocalDateTime waktuMenungguTanggapanSupervisor;
@Column(name = "tindak_lanjut_penyelesaian")
private String tindakLanjutPenyelesaian;
@Column(name = "no_lapor_pln")
private String noLaporPln;
@Column(name = "no_tiket_crm")
private String noTiketCrm;
@ManyToOne()
@JoinColumn(name = "id_kelurahan", referencedColumnName = "id_kelurahan", insertable = false, updatable = false)
private MasterKelurahan kelurahan;
@ManyToOne()
@JoinColumn(name = "tipe_keluhan", referencedColumnName = "issuetypeid", insertable = false, updatable = false)
private Issuetype issueType;
@ManyToOne()
@JoinColumn(name = "tipe_sub_keluhan", referencedColumnName = "subissuetypeid", insertable = false, updatable = false)
private SubIssueType subIssueType;
}