time-tracker/backend/internal/dtos/timeentry_dto.go

44 lines
2.3 KiB
Go

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 {
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)
}