implemented data sources with prisma in go

This commit is contained in:
2025-01-02 13:19:55 +00:00
parent cfb0bdf9cf
commit 615e749a12
55 changed files with 1399 additions and 788 deletions
@@ -0,0 +1,28 @@
package dto
// ProjectDTO represents the data structure for transferring project data.
type ProjectDTO struct {
ID string `json:"id"`
Name string `json:"name"`
Description *string `json:"description"`
ClientID *string `json:"clientId"`
UserID string `json:"userId"`
CreatedAt string `json:"createdAt"` // Use ISO8601 format
UpdatedAt string `json:"updatedAt"` // Use ISO8601 format
}
// ProjectCreateDTO is used for creating a new project.
type ProjectCreateDTO struct {
Name string `json:"name"`
Description *string `json:"description"`
ClientID *string `json:"clientId"`
UserID string `json:"userId"`
}
// ProjectUpdateDTO is used for updating an existing project.
type ProjectUpdateDTO struct {
Name *string `json:"name"`
Description *string `json:"description"`
ClientID *string `json:"clientId"`
UserID *string `json:"userId"`
}
@@ -0,0 +1,25 @@
package dto
// ProjectTaskDTO represents the data structure for transferring project task data.
type ProjectTaskDTO struct {
ID string `json:"id"`
Name string `json:"name"`
Description *string `json:"description"`
ProjectID string `json:"projectId"`
CreatedAt string `json:"createdAt"` // Use ISO8601 format
UpdatedAt string `json:"updatedAt"` // Use ISO8601 format
}
// ProjectTaskCreateDTO is used for creating a new project task.
type ProjectTaskCreateDTO struct {
Name string `json:"name"`
Description *string `json:"description"`
ProjectID string `json:"projectId"`
}
// ProjectTaskUpdateDTO is used for updating an existing project task.
type ProjectTaskUpdateDTO struct {
Name *string `json:"name"`
Description *string `json:"description"`
ProjectID *string `json:"projectId"`
}
@@ -0,0 +1,31 @@
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"`
}
@@ -0,0 +1,25 @@
package dto
// UserDTO represents the data structure for transferring user data.
type UserDTO struct {
ID string `json:"id"`
Name string `json:"name"`
Email string `json:"email"`
Password *string `json:"password,omitempty"` // Optional for cases where password shouldn't be exposed
CreatedAt string `json:"createdAt"` // Use ISO8601 format
UpdatedAt string `json:"updatedAt"` // Use ISO8601 format
}
// UserCreateDTO is used for creating a new user.
type UserCreateDTO struct {
Name string `json:"name"`
Email string `json:"email"`
Password string `json:"password"`
}
// UserUpdateDTO is used for updating an existing user.
type UserUpdateDTO struct {
Name *string `json:"name"`
Email *string `json:"email"`
Password *string `json:"password"`
}