package models

import (
	"database/sql"
	"encoding/json"
)

type StatementHeader struct {
	CariKod     string         `json:"cari_kod"`
	CariIsim    string         `json:"cari_isim"`
	BelgeTarihi string         `json:"belge_tarihi"`
	VadeTarihi  string         `json:"vade_tarihi"`
	BelgeNo     string         `json:"belge_no"`
	IslemTipi   string         `json:"islem_tipi"`
	Aciklama    string         `json:"aciklama"`
	ParaBirimi  string         `json:"para_birimi"`
	Borc        float64        `json:"borc"`
	Alacak      float64        `json:"alacak"`
	Bakiye      float64        `json:"bakiye"`
	Parislemler sql.NullString `json:"parislemler"`

	// 🔹 PDF için detaylar
	Details []StatementDetail `json:"details,omitempty"`
}

// JSON dönüşümünde NULL değerleri "" yap
func (s StatementHeader) MarshalJSON() ([]byte, error) {
	type Alias StatementHeader
	return json.Marshal(&struct {
		Parislemler string `json:"parislemler"`
		*Alias
	}{
		Parislemler: func() string {
			if s.Parislemler.Valid {
				return s.Parislemler.String
			}
			return ""
		}(),
		Alias: (*Alias)(&s),
	})
}
