refactor: restructure in entirety
This commit is contained in:
46
internal/models/models.go
Normal file
46
internal/models/models.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package models
|
||||
|
||||
// Product represents a product in the database
|
||||
type Product struct {
|
||||
SKU string `json:"sku"`
|
||||
Name string `json:"name"`
|
||||
HSNCode string `json:"hsn_code"`
|
||||
BasePrice float64 `json:"base_price"`
|
||||
WholesalePrice float64 `json:"wholesale_price"`
|
||||
GSTRate float64 `json:"gst_rate"`
|
||||
SmallOrderQty int `json:"small_order_qty"`
|
||||
SmallOrderFee float64 `json:"small_order_fee"` // Convenience fee for orders below SmallOrderQty
|
||||
Unit string `json:"unit"` // Unit of measurement (e.g., "pcs", "kg", "box")
|
||||
UserID string `json:"user_id"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
// Invoice represents a stored invoice
|
||||
type Invoice struct {
|
||||
ID string `json:"id"` // UUID
|
||||
HumanReadableID string `json:"human_readable_id"` // Formatted ID like INV/12-2025/001
|
||||
Data string `json:"data"` // JSON blob of invoice details
|
||||
UserID string `json:"user_id"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
// User represents an authenticated user
|
||||
type User struct {
|
||||
ID string `json:"id"`
|
||||
Email string `json:"email"`
|
||||
Password string `json:"-"`
|
||||
CompanyDetails string `json:"company_details"` // Multiline company details for invoice header
|
||||
BankDetails string `json:"bank_details"` // Multiline bank details for invoice footer
|
||||
InvoicePrefix string `json:"invoice_prefix"` // Prefix for invoice IDs (e.g., INV, BILL)
|
||||
InvoiceCounter int `json:"invoice_counter"` // Auto-incrementing counter for invoice serial numbers
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
// BuyerDetails represents a buyer/customer for invoices
|
||||
type BuyerDetails struct {
|
||||
ID string `json:"id"`
|
||||
UserID string `json:"user_id"`
|
||||
Name string `json:"name"` // Display name for selection
|
||||
Details string `json:"details"` // Multiline buyer details
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
Reference in New Issue
Block a user