package dto

// TimeEntryDTO represents the data structure for transferring time entry data.
type TimeEntryDTO struct {
	ID          string  `json:"id"`
	StartTime   string  `json:"startTime"`  // Use ISO8601 format
	EndTime     *string  `json:"endTime"`    // Use ISO8601 format
	Description *string `json:"description"`
	UserID      string  `json:"userId"`
	ProjectID   string  `json:"projectId"`
	CreatedAt   string  `json:"createdAt"`  // Use ISO8601 format
	UpdatedAt   string  `json:"updatedAt"`  // Use ISO8601 format
}

// TimeEntryCreateDTO is used for creating a new time entry.
type TimeEntryCreateDTO struct {
	StartTime   string  `json:"startTime"`  // Use ISO8601 format
	EndTime     *string  `json:"endTime"`    // Use ISO8601 format
	Description *string `json:"description"`
	UserID      string  `json:"userId"`
	ProjectID   string  `json:"projectId"`
}

// TimeEntryUpdateDTO is used for updating an existing time entry.
type TimeEntryUpdateDTO struct {
	StartTime   *string `json:"startTime"`  // Use ISO8601 format
	EndTime     *string `json:"endTime"`    // Use ISO8601 format
	Description *string `json:"description"`
	UserID      *string `json:"userId"`
	ProjectID   *string `json:"projectId"`
}
