Update Penggunaan Gorm

This commit is contained in:
2025-10-23 04:25:28 +07:00
parent 21f70f1d3f
commit a5523d11a3
9 changed files with 758 additions and 177 deletions

View File

@@ -2,34 +2,38 @@ package retribusi
import (
"api-service/internal/models"
"database/sql"
"encoding/json"
"time"
"gorm.io/gorm"
)
// Retribusi represents the data structure for the retribusi table
// with proper null handling and optimized JSON marshaling
type Retribusi struct {
ID string `json:"id" db:"id"`
Status string `json:"status" db:"status"`
Sort models.NullableInt32 `json:"sort,omitempty" db:"sort"`
UserCreated models.NullableString `json:"user_created,omitempty" db:"user_created"`
DateCreated models.NullableTime `json:"date_created,omitempty" db:"date_created"`
UserUpdated models.NullableString `json:"user_updated,omitempty" db:"user_updated"`
DateUpdated models.NullableTime `json:"date_updated,omitempty" db:"date_updated"`
Jenis models.NullableString `json:"jenis,omitempty" db:"Jenis"`
Pelayanan models.NullableString `json:"pelayanan,omitempty" db:"Pelayanan"`
Dinas models.NullableString `json:"dinas,omitempty" db:"Dinas"`
KelompokObyek models.NullableString `json:"kelompok_obyek,omitempty" db:"Kelompok_obyek"`
KodeTarif models.NullableString `json:"kode_tarif,omitempty" db:"Kode_tarif"`
Tarif models.NullableString `json:"tarif,omitempty" db:"Tarif"`
Satuan models.NullableString `json:"satuan,omitempty" db:"Satuan"`
TarifOvertime models.NullableString `json:"tarif_overtime,omitempty" db:"Tarif_overtime"`
SatuanOvertime models.NullableString `json:"satuan_overtime,omitempty" db:"Satuan_overtime"`
RekeningPokok models.NullableString `json:"rekening_pokok,omitempty" db:"Rekening_pokok"`
RekeningDenda models.NullableString `json:"rekening_denda,omitempty" db:"Rekening_denda"`
Uraian1 models.NullableString `json:"uraian_1,omitempty" db:"Uraian_1"`
Uraian2 models.NullableString `json:"uraian_2,omitempty" db:"Uraian_2"`
Uraian3 models.NullableString `json:"uraian_3,omitempty" db:"Uraian_3"`
gorm.Model
ID string `json:"id" gorm:"column:id;primaryKey;type:varchar(255)"`
Status string `json:"status" gorm:"column:status;type:varchar(50);not null"`
Sort sql.NullInt32 `json:"sort,omitempty" gorm:"column:sort"`
UserCreated sql.NullString `json:"user_created,omitempty" gorm:"column:user_created"`
DateCreated sql.NullTime `json:"date_created,omitempty" gorm:"column:date_created"`
UserUpdated sql.NullString `json:"user_updated,omitempty" gorm:"column:user_updated"`
DateUpdated sql.NullTime `json:"date_updated,omitempty" gorm:"column:date_updated"`
Jenis sql.NullString `json:"jenis,omitempty" gorm:"column:Jenis"`
Pelayanan sql.NullString `json:"pelayanan,omitempty" gorm:"column:Pelayanan"`
Dinas sql.NullString `json:"dinas,omitempty" gorm:"column:Dinas"`
KelompokObyek sql.NullString `json:"kelompok_obyek,omitempty" gorm:"column:Kelompok_obyek"`
KodeTarif sql.NullString `json:"kode_tarif,omitempty" gorm:"column:Kode_tarif"`
Tarif sql.NullString `json:"tarif,omitempty" gorm:"column:Tarif"`
Satuan sql.NullString `json:"satuan,omitempty" gorm:"column:Satuan"`
TarifOvertime sql.NullString `json:"tarif_overtime,omitempty" gorm:"column:Tarif_overtime"`
SatuanOvertime sql.NullString `json:"satuan_overtime,omitempty" gorm:"column:Satuan_overtime"`
RekeningPokok sql.NullString `json:"rekening_pokok,omitempty" gorm:"column:Rekening_pokok"`
RekeningDenda sql.NullString `json:"rekening_denda,omitempty" gorm:"column:Rekening_denda"`
Uraian1 sql.NullString `json:"uraian_1,omitempty" gorm:"column:Uraian_1"`
Uraian2 sql.NullString `json:"uraian_2,omitempty" gorm:"column:Uraian_2"`
Uraian3 sql.NullString `json:"uraian_3,omitempty" gorm:"column:Uraian_3"`
}
// Custom JSON marshaling untuk Retribusi agar NULL values tidak muncul di response