feat: Add database object models and repositories for Activity, Company, Customer, Project, TimeEntry, and User with GORM integration
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
package persistence
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/oklog/ulid/v2"
|
||||
"github.com/timetracker/backend/internal/domain/entities"
|
||||
)
|
||||
|
||||
type ActivityDatasource interface {
|
||||
Get(ctx context.Context, id ulid.ULID) (*entities.Activity, error)
|
||||
Create(ctx context.Context, activity *entities.Activity) error
|
||||
Update(ctx context.Context, activity *entities.Activity) error
|
||||
Delete(ctx context.Context, id ulid.ULID) error
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package persistence
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/oklog/ulid/v2"
|
||||
"github.com/timetracker/backend/internal/domain/entities"
|
||||
)
|
||||
|
||||
type CompanyDatasource interface {
|
||||
Get(ctx context.Context, id ulid.ULID) (*entities.Company, error)
|
||||
Create(ctx context.Context, company *entities.Company) error
|
||||
Update(ctx context.Context, company *entities.Company) error
|
||||
Delete(ctx context.Context, id ulid.ULID) error
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package persistence
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/oklog/ulid/v2"
|
||||
"github.com/timetracker/backend/internal/domain/entities"
|
||||
)
|
||||
|
||||
type CustomerDatasource interface {
|
||||
Get(ctx context.Context, id ulid.ULID) (*entities.Customer, error)
|
||||
Create(ctx context.Context, customer *entities.Customer) error
|
||||
Update(ctx context.Context, customer *entities.Customer) error
|
||||
Delete(ctx context.Context, id ulid.ULID) error
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package persistence
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/oklog/ulid/v2"
|
||||
"github.com/timetracker/backend/internal/domain/entities"
|
||||
)
|
||||
|
||||
type ProjectDatasource interface {
|
||||
Get(ctx context.Context, id ulid.ULID) (*entities.Project, error)
|
||||
Create(ctx context.Context, project *entities.Project) error
|
||||
Update(ctx context.Context, project *entities.Project) error
|
||||
Delete(ctx context.Context, id ulid.ULID) error
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package persistence
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"time"
|
||||
|
||||
"github.com/oklog/ulid/v2"
|
||||
"github.com/timetracker/backend/internal/domain/entities"
|
||||
)
|
||||
|
||||
type TimeEntryDatasource interface {
|
||||
Get(ctx context.Context, id ulid.ULID) (*entities.TimeEntry, error)
|
||||
Create(ctx context.Context, timeEntry *entities.TimeEntry) error
|
||||
Update(ctx context.Context, timeEntry *entities.TimeEntry) error
|
||||
Delete(ctx context.Context, id ulid.ULID) error
|
||||
GetByRange(ctx context.Context, userID ulid.ULID, from time.Time, to time.Time) ([]*entities.TimeEntry, error)
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package persistence
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/oklog/ulid/v2"
|
||||
"github.com/timetracker/backend/internal/domain/entities"
|
||||
)
|
||||
|
||||
type UserDatasource interface {
|
||||
Get(ctx context.Context, id ulid.ULID) (*entities.User, error)
|
||||
Create(ctx context.Context, user *entities.User) error
|
||||
Update(ctx context.Context, user *entities.User) error
|
||||
Delete(ctx context.Context, id ulid.ULID) error
|
||||
GetByUsername(ctx context.Context, username string) (*entities.User, error)
|
||||
}
|
||||
Reference in New Issue
Block a user