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
}
