Initial CPONE middleware implementation
This commit is contained in:
31
internal/db/db.go
Normal file
31
internal/db/db.go
Normal file
@@ -0,0 +1,31 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type DBTX interface {
|
||||
ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
|
||||
PrepareContext(context.Context, string) (*sql.Stmt, error)
|
||||
QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
|
||||
QueryRowContext(context.Context, string, ...interface{}) *sql.Row
|
||||
}
|
||||
|
||||
func New(db DBTX) *Queries {
|
||||
return &Queries{db: db}
|
||||
}
|
||||
|
||||
type Queries struct {
|
||||
db DBTX
|
||||
}
|
||||
|
||||
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
|
||||
return &Queries{
|
||||
db: tx,
|
||||
}
|
||||
}
|
||||
39
internal/db/models.go
Normal file
39
internal/db/models.go
Normal file
@@ -0,0 +1,39 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
|
||||
package db
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type HargaLayanan10 struct {
|
||||
Hargalayananid int64 `json:"hargalayananid"`
|
||||
Layanandepartemenid sql.NullInt64 `json:"layanandepartemenid"`
|
||||
Kelasid sql.NullString `json:"kelasid"`
|
||||
Na sql.NullString `json:"na"`
|
||||
Harga sql.NullString `json:"harga"`
|
||||
Sharetipe sql.NullString `json:"sharetipe"`
|
||||
Sharedokter sql.NullString `json:"sharedokter"`
|
||||
Sharers sql.NullString `json:"sharers"`
|
||||
Shareexternal sql.NullString `json:"shareexternal"`
|
||||
Sharelain sql.NullString `json:"sharelain"`
|
||||
}
|
||||
|
||||
type Jenislayanan struct {
|
||||
Jenislayananid int64 `json:"jenislayananid"`
|
||||
Nama sql.NullString `json:"nama"`
|
||||
}
|
||||
|
||||
type Layanandeparteman struct {
|
||||
Layanandepartemenid int64 `json:"layanandepartemenid"`
|
||||
Layananid sql.NullString `json:"layananid"`
|
||||
Na sql.NullString `json:"na"`
|
||||
}
|
||||
|
||||
type Masterlayanan struct {
|
||||
Layananid string `json:"layananid"`
|
||||
Nama sql.NullString `json:"nama"`
|
||||
Jenislayananid sql.NullInt64 `json:"jenislayananid"`
|
||||
}
|
||||
135
internal/db/query.sql.go
Normal file
135
internal/db/query.sql.go
Normal file
@@ -0,0 +1,135 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.31.1
|
||||
// source: query.sql
|
||||
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const mappingHargaPeriode10 = `-- name: MappingHargaPeriode10 :many
|
||||
SELECT
|
||||
tarif.HargaLayananID AS TarifLayananID,
|
||||
layanan_dept.LayananID,
|
||||
layanan.Nama AS NamaLayanan,
|
||||
layanan.JenisLayananID,
|
||||
jenis.Nama AS NamaJenisLayanan,
|
||||
'Default' AS Kelas,
|
||||
'Default' AS NamaKelas,
|
||||
tarif.Harga,
|
||||
'Percentage' AS TipeDiskonRJ,
|
||||
'0.00' AS DiskonRJ,
|
||||
'Percentage' AS TipeDiskonRI,
|
||||
'0.00' AS DiskonRI,
|
||||
tarif.ShareTipe AS TipeShare,
|
||||
tarif.ShareDokter,
|
||||
tarif.ShareRS,
|
||||
tarif.ShareExternal AS ShareExt,
|
||||
tarif.ShareLain,
|
||||
'+Layanan' AS AsalTarif
|
||||
FROM layanandepartemen AS layanan_dept
|
||||
INNER JOIN harga_layanan_10 AS tarif
|
||||
ON tarif.LayananDepartemenID = layanan_dept.LayananDepartemenID
|
||||
AND tarif.KelasID = 'Default'
|
||||
AND tarif.NA = 'N'
|
||||
LEFT JOIN masterlayanan AS layanan
|
||||
ON layanan.LayananID = layanan_dept.LayananID
|
||||
LEFT JOIN jenislayanan AS jenis
|
||||
ON jenis.JenisLayananID = layanan.JenisLayananID
|
||||
WHERE layanan_dept.NA = 'N'
|
||||
AND layanan_dept.LayananID IN (/*SLICE:layanan_ids*/?)
|
||||
AND (
|
||||
? IS NULL
|
||||
OR layanan_dept.LayananID LIKE ?
|
||||
OR layanan.Nama LIKE ?
|
||||
)
|
||||
ORDER BY layanan.Nama, layanan.JenisLayananID
|
||||
`
|
||||
|
||||
type MappingHargaPeriode10Params struct {
|
||||
LayananIds []sql.NullString `json:"layanan_ids"`
|
||||
Search sql.NullString `json:"search"`
|
||||
}
|
||||
|
||||
type MappingHargaPeriode10Row struct {
|
||||
Tariflayananid int64 `json:"tariflayananid"`
|
||||
Layananid sql.NullString `json:"layananid"`
|
||||
Namalayanan sql.NullString `json:"namalayanan"`
|
||||
Jenislayananid sql.NullInt64 `json:"jenislayananid"`
|
||||
Namajenislayanan sql.NullString `json:"namajenislayanan"`
|
||||
Kelas string `json:"kelas"`
|
||||
Namakelas string `json:"namakelas"`
|
||||
Harga sql.NullString `json:"harga"`
|
||||
Tipediskonrj string `json:"tipediskonrj"`
|
||||
Diskonrj string `json:"diskonrj"`
|
||||
Tipediskonri string `json:"tipediskonri"`
|
||||
Diskonri string `json:"diskonri"`
|
||||
Tipeshare sql.NullString `json:"tipeshare"`
|
||||
Sharedokter sql.NullString `json:"sharedokter"`
|
||||
Sharers sql.NullString `json:"sharers"`
|
||||
Shareext sql.NullString `json:"shareext"`
|
||||
Sharelain sql.NullString `json:"sharelain"`
|
||||
Asaltarif string `json:"asaltarif"`
|
||||
}
|
||||
|
||||
// sqlc does not support dynamic table identifiers. This query is a generation
|
||||
// template for one concrete period table; duplicate or generate per period as
|
||||
// needed, then keep the HTTP response mapping unchanged.
|
||||
func (q *Queries) MappingHargaPeriode10(ctx context.Context, arg MappingHargaPeriode10Params) ([]MappingHargaPeriode10Row, error) {
|
||||
query := mappingHargaPeriode10
|
||||
var queryParams []interface{}
|
||||
if len(arg.LayananIds) > 0 {
|
||||
for _, v := range arg.LayananIds {
|
||||
queryParams = append(queryParams, v)
|
||||
}
|
||||
query = strings.Replace(query, "/*SLICE:layanan_ids*/?", strings.Repeat(",?", len(arg.LayananIds))[1:], 1)
|
||||
} else {
|
||||
query = strings.Replace(query, "/*SLICE:layanan_ids*/?", "NULL", 1)
|
||||
}
|
||||
queryParams = append(queryParams, arg.Search)
|
||||
queryParams = append(queryParams, arg.Search)
|
||||
queryParams = append(queryParams, arg.Search)
|
||||
rows, err := q.db.QueryContext(ctx, query, queryParams...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []MappingHargaPeriode10Row
|
||||
for rows.Next() {
|
||||
var i MappingHargaPeriode10Row
|
||||
if err := rows.Scan(
|
||||
&i.Tariflayananid,
|
||||
&i.Layananid,
|
||||
&i.Namalayanan,
|
||||
&i.Jenislayananid,
|
||||
&i.Namajenislayanan,
|
||||
&i.Kelas,
|
||||
&i.Namakelas,
|
||||
&i.Harga,
|
||||
&i.Tipediskonrj,
|
||||
&i.Diskonrj,
|
||||
&i.Tipediskonri,
|
||||
&i.Diskonri,
|
||||
&i.Tipeshare,
|
||||
&i.Sharedokter,
|
||||
&i.Sharers,
|
||||
&i.Shareext,
|
||||
&i.Sharelain,
|
||||
&i.Asaltarif,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
Reference in New Issue
Block a user