72 lines
2.9 KiB
Go
72 lines
2.9 KiB
Go
package utils
|
|
|
|
// This file contains type definitions for Swagger documentation
|
|
|
|
// SwaggerULID is a string representation of ULID for Swagger
|
|
type SwaggerULID string
|
|
|
|
// SwaggerTime is a string representation of time.Time for Swagger
|
|
type SwaggerTime string
|
|
|
|
// ActivityResponse is a Swagger representation of ActivityDto
|
|
type ActivityResponse struct {
|
|
ID SwaggerULID `json:"id" example:"01H1VECTJQXS1RVWJT6QG3QJCJ"`
|
|
CreatedAt SwaggerTime `json:"createdAt" example:"2023-01-01T12:00:00Z"`
|
|
UpdatedAt SwaggerTime `json:"updatedAt" example:"2023-01-01T12:00:00Z"`
|
|
Name string `json:"name" example:"Development"`
|
|
BillingRate float64 `json:"billingRate" example:"100.0"`
|
|
}
|
|
|
|
// UserResponse is a Swagger representation of UserDto
|
|
type UserResponse struct {
|
|
ID SwaggerULID `json:"id" example:"01H1VECTJQXS1RVWJT6QG3QJCJ"`
|
|
CreatedAt SwaggerTime `json:"createdAt" example:"2023-01-01T12:00:00Z"`
|
|
UpdatedAt SwaggerTime `json:"updatedAt" example:"2023-01-01T12:00:00Z"`
|
|
Email string `json:"email" example:"user@example.com"`
|
|
Role string `json:"role" example:"admin"`
|
|
CompanyID int `json:"companyId" example:"1"`
|
|
HourlyRate float64 `json:"hourlyRate" example:"50.0"`
|
|
}
|
|
|
|
// ActivityCreateRequest is a Swagger representation of ActivityCreateDto
|
|
type ActivityCreateRequest struct {
|
|
Name string `json:"name" example:"Development"`
|
|
BillingRate float64 `json:"billingRate" example:"100.0"`
|
|
}
|
|
|
|
// ActivityUpdateRequest is a Swagger representation of ActivityUpdateDto
|
|
type ActivityUpdateRequest struct {
|
|
Name *string `json:"name,omitempty" example:"Development"`
|
|
BillingRate *float64 `json:"billingRate,omitempty" example:"100.0"`
|
|
}
|
|
|
|
// UserCreateRequest is a Swagger representation of UserCreateDto
|
|
type UserCreateRequest struct {
|
|
Email string `json:"email" example:"user@example.com"`
|
|
Password string `json:"password" example:"SecurePassword123!"`
|
|
Role string `json:"role" example:"admin"`
|
|
CompanyID int `json:"companyId" example:"1"`
|
|
HourlyRate float64 `json:"hourlyRate" example:"50.0"`
|
|
}
|
|
|
|
// UserUpdateRequest is a Swagger representation of UserUpdateDto
|
|
type UserUpdateRequest struct {
|
|
Email *string `json:"email,omitempty" example:"user@example.com"`
|
|
Password *string `json:"password,omitempty" example:"SecurePassword123!"`
|
|
Role *string `json:"role,omitempty" example:"admin"`
|
|
CompanyID *int `json:"companyId,omitempty" example:"1"`
|
|
HourlyRate *float64 `json:"hourlyRate,omitempty" example:"50.0"`
|
|
}
|
|
|
|
// LoginRequest is a Swagger representation of LoginDto
|
|
type LoginRequest struct {
|
|
Email string `json:"email" example:"user@example.com"`
|
|
Password string `json:"password" example:"SecurePassword123!"`
|
|
}
|
|
|
|
// TokenResponse is a Swagger representation of TokenDto
|
|
type TokenResponse struct {
|
|
Token string `json:"token" example:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."`
|
|
User UserResponse `json:"user"`
|
|
}
|