package dto

import (
	"time"

	"github.com/timetracker/backend/internal/types"
)

type CustomerDto struct {
	ID           string    `json:"id" example:"01HGW2BBG0000000000000000"`
	CreatedAt    time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
	UpdatedAt    time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
	LastEditorID string    `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
	Name         string    `json:"name" example:"John Doe"`
	CompanyID    *string   `json:"companyId" example:"01HGW2BBG0000000000000000"`
	OwnerUserID  *string   `json:"owningUserID" example:"01HGW2BBG0000000000000000"`
}

type CustomerCreateDto struct {
	Name      string  `json:"name" example:"John Doe"`
	CompanyID *string `json:"companyId" example:"01HGW2BBG0000000000000000"`
}

type CustomerUpdateDto struct {
	ID           string                 `json:"id" example:"01HGW2BBG0000000000000000"`
	CreatedAt    *time.Time             `json:"createdAt" example:"2024-01-01T00:00:00Z"`
	UpdatedAt    *time.Time             `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
	LastEditorID *string                `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
	Name         *string                `json:"name" example:"John Doe"`
	CompanyID    types.Nullable[string] `json:"companyId" example:"01HGW2BBG0000000000000000"`
	OwnerUserID  types.Nullable[string] `json:"owningUserID" example:"01HGW2BBG0000000000000000"`
}
