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,18 @@
package data
import (
"actatempus_backend/internal/domain/entities"
"context"
E "github.com/IBM/fp-go/either"
)
// ProjectDataSource defines the operations for interacting with project data.
type ProjectDataSource interface {
Create(ctx context.Context, project entities.ProjectCreate) E.Either[error,entities.Project]
FindByID(ctx context.Context, id string) E.Either[error,entities.Project]
FindByUserID(ctx context.Context, userID string) E.Either[error,[]entities.Project]
Update(ctx context.Context, project entities.ProjectUpdate) E.Either[error,entities.Project]
Delete(ctx context.Context, id string) E.Either[error,entities.Project]
FindAll(ctx context.Context) E.Either[error,[]entities.Project]
}
@@ -0,0 +1,18 @@
package data
import (
"actatempus_backend/internal/domain/entities"
"context"
E "github.com/IBM/fp-go/either"
)
// ProjectTaskDataSource defines the operations for interacting with project task data.
type ProjectTaskDataSource interface {
Create(ctx context.Context, task entities.ProjectTaskCreate) E.Either[error,entities.ProjectTask]
FindByID(ctx context.Context, id string) E.Either[error,entities.ProjectTask]
FindByProjectID(ctx context.Context, projectID string) E.Either[error,[]entities.ProjectTask]
Update(ctx context.Context, task entities.ProjectTaskUpdate) E.Either[error,entities.ProjectTask]
Delete(ctx context.Context, id string) E.Either[error,entities.ProjectTask]
FindAll(ctx context.Context) E.Either[error,[]entities.ProjectTask]
}
@@ -0,0 +1,19 @@
package data
import (
"actatempus_backend/internal/domain/entities"
"context"
E "github.com/IBM/fp-go/either"
)
// TimeEntryDataSource defines the operations for interacting with time entry data.
type TimeEntryDataSource interface {
Create(ctx context.Context, entry entities.TimeEntryCreate) E.Either[error,entities.TimeEntry]
FindByID(ctx context.Context, id string) E.Either[error,entities.TimeEntry]
FindByUserID(ctx context.Context, userID string) E.Either[error,[]entities.TimeEntry]
FindByProjectID(ctx context.Context, projectID string) E.Either[error,[]entities.TimeEntry]
Update(ctx context.Context, entry entities.TimeEntryUpdate) E.Either[error,entities.TimeEntry]
Delete(ctx context.Context, id string) E.Either[error,entities.TimeEntry]
FindAll(ctx context.Context) E.Either[error,[]entities.TimeEntry]
}
@@ -0,0 +1,17 @@
package data
import (
"actatempus_backend/internal/domain/entities"
"context"
E "github.com/IBM/fp-go/either"
)
// UserDataSource defines the operations for interacting with user data.
type UserDataSource interface {
Create(ctx context.Context, user entities.UserCreate) E.Either[error,entities.User]
FindByID(ctx context.Context, id string) E.Either[error,entities.User]
FindByEmail(ctx context.Context, email string) E.Either[error,entities.User]
Update(ctx context.Context, user entities.UserUpdate) E.Either[error,entities.User]
Delete(ctx context.Context, id string) E.Either[error,entities.User]
FindAll(ctx context.Context) E.Either[error,[]entities.User]
}