package dto

import (
	"time"
)

type TimeEntryDto 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"`
	UserID       string    `json:"userId" example:"01HGW2BBG0000000000000000"`
	ProjectID    string    `json:"projectId" example:"01HGW2BBG0000000000000000"`
	ActivityID   string    `json:"activityId" example:"01HGW2BBG0000000000000000"`
	Start        time.Time `json:"start" example:"2024-01-01T08:00:00Z"`
	End          time.Time `json:"end" example:"2024-01-01T17:00:00Z"`
	Description  string    `json:"description" example:"Working on the Time Tracking App"`
	Billable     int       `json:"billable" example:"100"` // Percentage (0-100)
}

type TimeEntryCreateDto struct {
	UserID      string    `json:"userId" example:"01HGW2BBG0000000000000000"`
	ProjectID   string    `json:"projectId" example:"01HGW2BBG0000000000000000"`
	ActivityID  string    `json:"activityId" example:"01HGW2BBG0000000000000000"`
	Start       time.Time `json:"start" example:"2024-01-01T08:00:00Z"`
	End         time.Time `json:"end" example:"2024-01-01T17:00:00Z"`
	Description string    `json:"description" example:"Working on the Time Tracking App"`
	Billable    int       `json:"billable" example:"100"` // Percentage (0-100)
}

type TimeEntryUpdateDto struct {
	CreatedAt   *time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
	UpdatedAt   *time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
	UserID      *string    `json:"userId" example:"01HGW2BBG0000000000000000"`
	ProjectID   *string    `json:"projectId" example:"01HGW2BBG0000000000000000"`
	ActivityID  *string    `json:"activityId" example:"01HGW2BBG0000000000000000"`
	Start       *time.Time `json:"start" example:"2024-01-01T08:00:00Z"`
	End         *time.Time `json:"end" example:"2024-01-01T17:00:00Z"`
	Description *string    `json:"description" example:"Working on the Time Tracking App"`
	Billable    *int       `json:"billable" example:"100"` // Percentage (0-100)
}
