54 lines
2.4 KiB
Go
54 lines
2.4 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type ChartOfAccountResponse struct {
|
|
ID uuid.UUID `json:"id"`
|
|
OrganizationID uuid.UUID `json:"organization_id"`
|
|
OutletID *uuid.UUID `json:"outlet_id"`
|
|
ChartOfAccountTypeID uuid.UUID `json:"chart_of_account_type_id"`
|
|
ParentID *uuid.UUID `json:"parent_id"`
|
|
Name string `json:"name"`
|
|
Code string `json:"code"`
|
|
Description *string `json:"description"`
|
|
IsActive bool `json:"is_active"`
|
|
IsSystem bool `json:"is_system"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
ChartOfAccountType *ChartOfAccountTypeResponse `json:"chart_of_account_type,omitempty"`
|
|
Parent *ChartOfAccountResponse `json:"parent,omitempty"`
|
|
Children []ChartOfAccountResponse `json:"children,omitempty"`
|
|
}
|
|
|
|
type CreateChartOfAccountRequest struct {
|
|
ChartOfAccountTypeID uuid.UUID `json:"chart_of_account_type_id" validate:"required"`
|
|
ParentID *uuid.UUID `json:"parent_id"`
|
|
Name string `json:"name" validate:"required,min=1,max=255"`
|
|
Code string `json:"code" validate:"required,min=1,max=20"`
|
|
Description *string `json:"description"`
|
|
}
|
|
|
|
type UpdateChartOfAccountRequest struct {
|
|
ChartOfAccountTypeID *uuid.UUID `json:"chart_of_account_type_id"`
|
|
ParentID *uuid.UUID `json:"parent_id"`
|
|
Name *string `json:"name" validate:"omitempty,min=1,max=255"`
|
|
Code *string `json:"code" validate:"omitempty,min=1,max=20"`
|
|
Description *string `json:"description"`
|
|
IsActive *bool `json:"is_active"`
|
|
}
|
|
|
|
type ListChartOfAccountsRequest struct {
|
|
OrganizationID uuid.UUID `form:"organization_id"`
|
|
OutletID uuid.UUID `form:"outlet_id"`
|
|
ChartOfAccountTypeID *uuid.UUID `form:"chart_of_account_type_id"`
|
|
ParentID *uuid.UUID `form:"parent_id"`
|
|
IsActive *bool `form:"is_active"`
|
|
IsSystem *bool `form:"is_system"`
|
|
Page int `form:"page,default=1"`
|
|
Limit int `form:"limit,default=10"`
|
|
}
|