package models import "time" type Invoice struct { ID uint `gorm:"primaryKey" json:"id"` SalesOrderID uint `json:"sales_order_id"` InvoiceNumber string `gorm:"not null;unique" json:"invoice_number"` InvoiceDate time.Time `json:"invoice_date"` DueDate time.Time `json:"due_date"` TotalAmount float64 `json:"total_amount"` Status string `json:"status"` // contoh: unpaid, partial, paid Note string `json:"note"` IsDpInvoice bool `json:"is_dp_invoice"` // Apakah ini invoice DP (Down Payment) Amount float64 `json:"amount"` // Jumlah DP jika ada ParentInvoiceID uint `json:"parent_invoice_id,omitempty"` // ID invoice induk jika ini adalah invoice lanjutan ParentInvoice *Invoice `gorm:"foreignKey:ParentInvoiceID" json:"parent_invoice,omitempty"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }