Base Project
This commit is contained in:
471
sqlc_gen/models.go
Normal file
471
sqlc_gen/models.go
Normal file
@@ -0,0 +1,471 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.30.0
|
||||
|
||||
package db
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
type ComponentItemStatusEnum string
|
||||
|
||||
const (
|
||||
ComponentItemStatusEnumNormal ComponentItemStatusEnum = "normal"
|
||||
ComponentItemStatusEnumDamaged ComponentItemStatusEnum = "damaged"
|
||||
ComponentItemStatusEnumLongUnused ComponentItemStatusEnum = "long_unused"
|
||||
ComponentItemStatusEnumExpired ComponentItemStatusEnum = "expired"
|
||||
ComponentItemStatusEnumPendingInspection ComponentItemStatusEnum = "pending_inspection"
|
||||
)
|
||||
|
||||
func (e *ComponentItemStatusEnum) Scan(src interface{}) error {
|
||||
switch s := src.(type) {
|
||||
case []byte:
|
||||
*e = ComponentItemStatusEnum(s)
|
||||
case string:
|
||||
*e = ComponentItemStatusEnum(s)
|
||||
default:
|
||||
return fmt.Errorf("unsupported scan type for ComponentItemStatusEnum: %T", src)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type NullComponentItemStatusEnum struct {
|
||||
ComponentItemStatusEnum ComponentItemStatusEnum `json:"componentItemStatusEnum"`
|
||||
Valid bool `json:"valid"` // Valid is true if ComponentItemStatusEnum is not NULL
|
||||
}
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (ns *NullComponentItemStatusEnum) Scan(value interface{}) error {
|
||||
if value == nil {
|
||||
ns.ComponentItemStatusEnum, ns.Valid = "", false
|
||||
return nil
|
||||
}
|
||||
ns.Valid = true
|
||||
return ns.ComponentItemStatusEnum.Scan(value)
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (ns NullComponentItemStatusEnum) Value() (driver.Value, error) {
|
||||
if !ns.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
return string(ns.ComponentItemStatusEnum), nil
|
||||
}
|
||||
|
||||
type ContainerTypeEnum string
|
||||
|
||||
const (
|
||||
ContainerTypeEnumEmptyBox ContainerTypeEnum = "empty_box"
|
||||
ContainerTypeEnumTray ContainerTypeEnum = "tray"
|
||||
ContainerTypeEnumPaperBox ContainerTypeEnum = "paper_box"
|
||||
ContainerTypeEnumPlasticBox ContainerTypeEnum = "plastic_box"
|
||||
ContainerTypeEnumBag ContainerTypeEnum = "bag"
|
||||
ContainerTypeEnumOther ContainerTypeEnum = "other"
|
||||
)
|
||||
|
||||
func (e *ContainerTypeEnum) Scan(src interface{}) error {
|
||||
switch s := src.(type) {
|
||||
case []byte:
|
||||
*e = ContainerTypeEnum(s)
|
||||
case string:
|
||||
*e = ContainerTypeEnum(s)
|
||||
default:
|
||||
return fmt.Errorf("unsupported scan type for ContainerTypeEnum: %T", src)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type NullContainerTypeEnum struct {
|
||||
ContainerTypeEnum ContainerTypeEnum `json:"containerTypeEnum"`
|
||||
Valid bool `json:"valid"` // Valid is true if ContainerTypeEnum is not NULL
|
||||
}
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (ns *NullContainerTypeEnum) Scan(value interface{}) error {
|
||||
if value == nil {
|
||||
ns.ContainerTypeEnum, ns.Valid = "", false
|
||||
return nil
|
||||
}
|
||||
ns.Valid = true
|
||||
return ns.ContainerTypeEnum.Scan(value)
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (ns NullContainerTypeEnum) Value() (driver.Value, error) {
|
||||
if !ns.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
return string(ns.ContainerTypeEnum), nil
|
||||
}
|
||||
|
||||
type InvoiceStatusEnum string
|
||||
|
||||
const (
|
||||
InvoiceStatusEnumDraft InvoiceStatusEnum = "draft"
|
||||
InvoiceStatusEnumPending InvoiceStatusEnum = "pending"
|
||||
InvoiceStatusEnumApproved InvoiceStatusEnum = "approved"
|
||||
InvoiceStatusEnumCompleted InvoiceStatusEnum = "completed"
|
||||
InvoiceStatusEnumCancelled InvoiceStatusEnum = "cancelled"
|
||||
)
|
||||
|
||||
func (e *InvoiceStatusEnum) Scan(src interface{}) error {
|
||||
switch s := src.(type) {
|
||||
case []byte:
|
||||
*e = InvoiceStatusEnum(s)
|
||||
case string:
|
||||
*e = InvoiceStatusEnum(s)
|
||||
default:
|
||||
return fmt.Errorf("unsupported scan type for InvoiceStatusEnum: %T", src)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type NullInvoiceStatusEnum struct {
|
||||
InvoiceStatusEnum InvoiceStatusEnum `json:"invoiceStatusEnum"`
|
||||
Valid bool `json:"valid"` // Valid is true if InvoiceStatusEnum is not NULL
|
||||
}
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (ns *NullInvoiceStatusEnum) Scan(value interface{}) error {
|
||||
if value == nil {
|
||||
ns.InvoiceStatusEnum, ns.Valid = "", false
|
||||
return nil
|
||||
}
|
||||
ns.Valid = true
|
||||
return ns.InvoiceStatusEnum.Scan(value)
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (ns NullInvoiceStatusEnum) Value() (driver.Value, error) {
|
||||
if !ns.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
return string(ns.InvoiceStatusEnum), nil
|
||||
}
|
||||
|
||||
type InvoiceTypeEnum string
|
||||
|
||||
const (
|
||||
InvoiceTypeEnumImport InvoiceTypeEnum = "import"
|
||||
InvoiceTypeEnumExport InvoiceTypeEnum = "export"
|
||||
)
|
||||
|
||||
func (e *InvoiceTypeEnum) Scan(src interface{}) error {
|
||||
switch s := src.(type) {
|
||||
case []byte:
|
||||
*e = InvoiceTypeEnum(s)
|
||||
case string:
|
||||
*e = InvoiceTypeEnum(s)
|
||||
default:
|
||||
return fmt.Errorf("unsupported scan type for InvoiceTypeEnum: %T", src)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type NullInvoiceTypeEnum struct {
|
||||
InvoiceTypeEnum InvoiceTypeEnum `json:"invoiceTypeEnum"`
|
||||
Valid bool `json:"valid"` // Valid is true if InvoiceTypeEnum is not NULL
|
||||
}
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (ns *NullInvoiceTypeEnum) Scan(value interface{}) error {
|
||||
if value == nil {
|
||||
ns.InvoiceTypeEnum, ns.Valid = "", false
|
||||
return nil
|
||||
}
|
||||
ns.Valid = true
|
||||
return ns.InvoiceTypeEnum.Scan(value)
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (ns NullInvoiceTypeEnum) Value() (driver.Value, error) {
|
||||
if !ns.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
return string(ns.InvoiceTypeEnum), nil
|
||||
}
|
||||
|
||||
type TransactionTypeEnum string
|
||||
|
||||
const (
|
||||
TransactionTypeEnumImport TransactionTypeEnum = "import"
|
||||
TransactionTypeEnumExport TransactionTypeEnum = "export"
|
||||
TransactionTypeEnumAdjustment TransactionTypeEnum = "adjustment"
|
||||
TransactionTypeEnumTransfer TransactionTypeEnum = "transfer"
|
||||
)
|
||||
|
||||
func (e *TransactionTypeEnum) Scan(src interface{}) error {
|
||||
switch s := src.(type) {
|
||||
case []byte:
|
||||
*e = TransactionTypeEnum(s)
|
||||
case string:
|
||||
*e = TransactionTypeEnum(s)
|
||||
default:
|
||||
return fmt.Errorf("unsupported scan type for TransactionTypeEnum: %T", src)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type NullTransactionTypeEnum struct {
|
||||
TransactionTypeEnum TransactionTypeEnum `json:"transactionTypeEnum"`
|
||||
Valid bool `json:"valid"` // Valid is true if TransactionTypeEnum is not NULL
|
||||
}
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (ns *NullTransactionTypeEnum) Scan(value interface{}) error {
|
||||
if value == nil {
|
||||
ns.TransactionTypeEnum, ns.Valid = "", false
|
||||
return nil
|
||||
}
|
||||
ns.Valid = true
|
||||
return ns.TransactionTypeEnum.Scan(value)
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (ns NullTransactionTypeEnum) Value() (driver.Value, error) {
|
||||
if !ns.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
return string(ns.TransactionTypeEnum), nil
|
||||
}
|
||||
|
||||
type AlternativeComponent struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
InvoiceConfigItemID int64 `db:"invoice_config_item_id" json:"invoiceConfigItemId"`
|
||||
AlternativeComponentID int64 `db:"alternative_component_id" json:"alternativeComponentId"`
|
||||
ConversionRatio pgtype.Numeric `db:"conversion_ratio" json:"conversionRatio"`
|
||||
Priority int32 `db:"priority" json:"priority"`
|
||||
Note pgtype.Text `db:"note" json:"note"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
}
|
||||
|
||||
type Cabinet struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
RoomID int64 `db:"room_id" json:"roomId"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
|
||||
type Component struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
ComponentTypeID int64 `db:"component_type_id" json:"componentTypeId"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
Unit string `db:"unit" json:"unit"`
|
||||
TotalQuantity int32 `db:"total_quantity" json:"totalQuantity"`
|
||||
MinQuantity int32 `db:"min_quantity" json:"minQuantity"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
|
||||
type ComponentCode struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
ComponentID int64 `db:"component_id" json:"componentId"`
|
||||
Code string `db:"code" json:"code"`
|
||||
CodeType pgtype.Text `db:"code_type" json:"codeType"`
|
||||
IsPrimary bool `db:"is_primary" json:"isPrimary"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
}
|
||||
|
||||
type ComponentItem struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
ComponentID int64 `db:"component_id" json:"componentId"`
|
||||
ContainerID int64 `db:"container_id" json:"containerId"`
|
||||
Quantity int32 `db:"quantity" json:"quantity"`
|
||||
Status ComponentItemStatusEnum `db:"status" json:"status"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
|
||||
type ComponentStatusHistory struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
ComponentItemID int64 `db:"component_item_id" json:"componentItemId"`
|
||||
OldStatus NullComponentItemStatusEnum `db:"old_status" json:"oldStatus"`
|
||||
NewStatus ComponentItemStatusEnum `db:"new_status" json:"newStatus"`
|
||||
ChangedQuantity pgtype.Int4 `db:"changed_quantity" json:"changedQuantity"`
|
||||
Note pgtype.Text `db:"note" json:"note"`
|
||||
ChangedBy pgtype.Text `db:"changed_by" json:"changedBy"`
|
||||
ChangedAt time.Time `db:"changed_at" json:"changedAt"`
|
||||
}
|
||||
|
||||
type ComponentType struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
|
||||
type Container struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
ShelfID int64 `db:"shelf_id" json:"shelfId"`
|
||||
Name string `db:"name" json:"name"`
|
||||
ContainerType ContainerTypeEnum `db:"container_type" json:"containerType"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
MaxCapacity pgtype.Int4 `db:"max_capacity" json:"maxCapacity"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
|
||||
type Invoice struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
InvoiceCode string `db:"invoice_code" json:"invoiceCode"`
|
||||
Type InvoiceTypeEnum `db:"type" json:"type"`
|
||||
Status InvoiceStatusEnum `db:"status" json:"status"`
|
||||
InvoiceConfigID pgtype.Int8 `db:"invoice_config_id" json:"invoiceConfigId"`
|
||||
TotalItems int32 `db:"total_items" json:"totalItems"`
|
||||
Note pgtype.Text `db:"note" json:"note"`
|
||||
CreatedBy pgtype.Text `db:"created_by" json:"createdBy"`
|
||||
ApprovedBy pgtype.Text `db:"approved_by" json:"approvedBy"`
|
||||
CompletedAt pgtype.Timestamptz `db:"completed_at" json:"completedAt"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
}
|
||||
|
||||
type InvoiceConfig struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Type InvoiceTypeEnum `db:"type" json:"type"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
IsActive bool `db:"is_active" json:"isActive"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
|
||||
type InvoiceConfigItem struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
InvoiceConfigID int64 `db:"invoice_config_id" json:"invoiceConfigId"`
|
||||
ComponentID int64 `db:"component_id" json:"componentId"`
|
||||
RequiredQuantity int32 `db:"required_quantity" json:"requiredQuantity"`
|
||||
AllowAlternative bool `db:"allow_alternative" json:"allowAlternative"`
|
||||
PriorityOrder int32 `db:"priority_order" json:"priorityOrder"`
|
||||
Note pgtype.Text `db:"note" json:"note"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
}
|
||||
|
||||
type InvoiceItem struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
InvoiceID int64 `db:"invoice_id" json:"invoiceId"`
|
||||
ComponentID int64 `db:"component_id" json:"componentId"`
|
||||
OriginalComponentID pgtype.Int8 `db:"original_component_id" json:"originalComponentId"`
|
||||
RequiredQuantity int32 `db:"required_quantity" json:"requiredQuantity"`
|
||||
ActualQuantity int32 `db:"actual_quantity" json:"actualQuantity"`
|
||||
IsSubstituted bool `db:"is_substituted" json:"isSubstituted"`
|
||||
IsShort bool `db:"is_short" json:"isShort"`
|
||||
ShortageQuantity int32 `db:"shortage_quantity" json:"shortageQuantity"`
|
||||
Note pgtype.Text `db:"note" json:"note"`
|
||||
Metadata []byte `db:"metadata" json:"metadata"`
|
||||
}
|
||||
|
||||
type InvoiceItemLocation struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
InvoiceItemID int64 `db:"invoice_item_id" json:"invoiceItemId"`
|
||||
ContainerID int64 `db:"container_id" json:"containerId"`
|
||||
Quantity int32 `db:"quantity" json:"quantity"`
|
||||
}
|
||||
|
||||
type InvoiceStatusHistory struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
InvoiceID int64 `db:"invoice_id" json:"invoiceId"`
|
||||
OldStatus pgtype.Text `db:"old_status" json:"oldStatus"`
|
||||
NewStatus string `db:"new_status" json:"newStatus"`
|
||||
ChangedBy pgtype.Text `db:"changed_by" json:"changedBy"`
|
||||
Note pgtype.Text `db:"note" json:"note"`
|
||||
ChangedAt time.Time `db:"changed_at" json:"changedAt"`
|
||||
}
|
||||
|
||||
type Permission struct {
|
||||
ID uuid.UUID `db:"id" json:"id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
CreatedAt pgtype.Timestamptz `db:"created_at" json:"createdAt"`
|
||||
CreatedBy pgtype.Text `db:"created_by" json:"createdBy"`
|
||||
}
|
||||
|
||||
type Role struct {
|
||||
ID uuid.UUID `db:"id" json:"id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
CreatedAt pgtype.Timestamptz `db:"created_at" json:"createdAt"`
|
||||
CreatedBy pgtype.Text `db:"created_by" json:"createdBy"`
|
||||
}
|
||||
|
||||
type RolePermission struct {
|
||||
RoleID uuid.UUID `db:"role_id" json:"roleId"`
|
||||
PermissionID uuid.UUID `db:"permission_id" json:"permissionId"`
|
||||
AssignedAt pgtype.Timestamptz `db:"assigned_at" json:"assignedAt"`
|
||||
}
|
||||
|
||||
type Room struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
WarehouseID int64 `db:"warehouse_id" json:"warehouseId"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
|
||||
type Shelf struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
CabinetID int64 `db:"cabinet_id" json:"cabinetId"`
|
||||
Name string `db:"name" json:"name"`
|
||||
LevelIndex int32 `db:"level_index" json:"levelIndex"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
|
||||
type StockTransaction struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
InvoiceID int64 `db:"invoice_id" json:"invoiceId"`
|
||||
ComponentID int64 `db:"component_id" json:"componentId"`
|
||||
ContainerID int64 `db:"container_id" json:"containerId"`
|
||||
TransactionType TransactionTypeEnum `db:"transaction_type" json:"transactionType"`
|
||||
Quantity int32 `db:"quantity" json:"quantity"`
|
||||
BalanceAfter pgtype.Int4 `db:"balance_after" json:"balanceAfter"`
|
||||
Note pgtype.Text `db:"note" json:"note"`
|
||||
CreatedBy pgtype.Text `db:"created_by" json:"createdBy"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
}
|
||||
|
||||
type User struct {
|
||||
ID uuid.UUID `db:"id" json:"id"`
|
||||
Username string `db:"username" json:"username"`
|
||||
Email string `db:"email" json:"email"`
|
||||
PasswordHash string `db:"password_hash" json:"passwordHash"`
|
||||
FullName pgtype.Text `db:"full_name" json:"fullName"`
|
||||
IsActive pgtype.Bool `db:"is_active" json:"isActive"`
|
||||
CreatedAt pgtype.Timestamptz `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updatedAt"`
|
||||
CreatedBy pgtype.Text `db:"created_by" json:"createdBy"`
|
||||
}
|
||||
|
||||
type UserRole struct {
|
||||
UserID uuid.UUID `db:"user_id" json:"userId"`
|
||||
RoleID uuid.UUID `db:"role_id" json:"roleId"`
|
||||
AssignedAt pgtype.Timestamptz `db:"assigned_at" json:"assignedAt"`
|
||||
}
|
||||
|
||||
type Warehouse struct {
|
||||
ID int64 `db:"id" json:"id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description pgtype.Text `db:"description" json:"description"`
|
||||
Address pgtype.Text `db:"address" json:"address"`
|
||||
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
|
||||
}
|
||||
Reference in New Issue
Block a user