48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
|
|
package models
|
||
|
|
|
||
|
|
import (
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/google/uuid"
|
||
|
|
)
|
||
|
|
|
||
|
|
type Category struct {
|
||
|
|
ID uuid.UUID
|
||
|
|
OrganizationID uuid.UUID
|
||
|
|
Name string
|
||
|
|
Description *string
|
||
|
|
ImageURL *string
|
||
|
|
SortOrder int
|
||
|
|
IsActive bool
|
||
|
|
CreatedAt time.Time
|
||
|
|
UpdatedAt time.Time
|
||
|
|
}
|
||
|
|
|
||
|
|
type CreateCategoryRequest struct {
|
||
|
|
OrganizationID uuid.UUID `validate:"required"`
|
||
|
|
Name string `validate:"required,min=1,max=255"`
|
||
|
|
Description *string `validate:"omitempty,max=1000"`
|
||
|
|
ImageURL *string `validate:"omitempty,url"`
|
||
|
|
SortOrder int `validate:"min=0"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type UpdateCategoryRequest struct {
|
||
|
|
Name *string `validate:"omitempty,min=1,max=255"`
|
||
|
|
Description *string `validate:"omitempty,max=1000"`
|
||
|
|
ImageURL *string `validate:"omitempty,url"`
|
||
|
|
SortOrder *int `validate:"omitempty,min=0"`
|
||
|
|
IsActive *bool
|
||
|
|
}
|
||
|
|
|
||
|
|
type CategoryResponse struct {
|
||
|
|
ID uuid.UUID
|
||
|
|
OrganizationID uuid.UUID
|
||
|
|
Name string
|
||
|
|
Description *string
|
||
|
|
ImageURL *string
|
||
|
|
SortOrder int
|
||
|
|
IsActive bool
|
||
|
|
CreatedAt time.Time
|
||
|
|
UpdatedAt time.Time
|
||
|
|
}
|