init push
This commit is contained in:
131
internal/domain/file_manager/repository.go
Normal file
131
internal/domain/file_manager/repository.go
Normal file
@@ -0,0 +1,131 @@
|
||||
package filemanager
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
)
|
||||
|
||||
type FolderRepository interface {
|
||||
Create(ctx context.Context, row *Folder) error
|
||||
Update(ctx context.Context, row *Folder) error
|
||||
MoveSubtree(ctx context.Context, id []byte, targetParentID []byte, targetName string, targetNameNormalized string, updatedBy []byte) (*Folder, error)
|
||||
Delete(ctx context.Context, id []byte, deletedBy []byte, purgeAt *time.Time) error
|
||||
Restore(ctx context.Context, id []byte, restoredBy []byte) error
|
||||
Purge(ctx context.Context, id []byte) error
|
||||
GetByID(ctx context.Context, id []byte) (*Folder, error)
|
||||
GetByIDAny(ctx context.Context, id []byte) (*Folder, error)
|
||||
GetByParentAndName(ctx context.Context, parentID []byte, nameNormalized string) (*Folder, error)
|
||||
ListByParent(ctx context.Context, parentID []byte, sort string, limit, offset int) ([]Folder, int64, error)
|
||||
SearchByName(ctx context.Context, name string, sort string, limit, offset int) ([]Folder, int64, error)
|
||||
ListTrash(ctx context.Context, sort string, limit, offset int) ([]Folder, int64, error)
|
||||
ListTrashByParent(ctx context.Context, parentID []byte, sort string, limit, offset int) ([]Folder, int64, error)
|
||||
}
|
||||
|
||||
type FileFinalizeParams struct {
|
||||
ID []byte
|
||||
ExpectedFrom string
|
||||
FolderID []byte
|
||||
Name string
|
||||
NameNormalized string
|
||||
Extension string
|
||||
UpdatedBy []byte
|
||||
}
|
||||
|
||||
type FileStatusTransitionParams struct {
|
||||
ID []byte
|
||||
ExpectedFrom string
|
||||
To string
|
||||
UpdatedBy []byte
|
||||
ProcessingStartedAt *time.Time
|
||||
ProcessedAt *time.Time
|
||||
ValidatedAt *time.Time
|
||||
FailedAt *time.Time
|
||||
FailureReason *string
|
||||
}
|
||||
|
||||
type FileRepository interface {
|
||||
Create(ctx context.Context, row *File) error
|
||||
Update(ctx context.Context, row *File) error
|
||||
TransitionStatus(ctx context.Context, params FileStatusTransitionParams) error
|
||||
Finalize(ctx context.Context, params FileFinalizeParams) error
|
||||
Delete(ctx context.Context, id []byte, deletedBy []byte, purgeAt *time.Time) error
|
||||
Restore(ctx context.Context, id []byte, restoredBy []byte) error
|
||||
Purge(ctx context.Context, id []byte) error
|
||||
GetByID(ctx context.Context, id []byte) (*File, error)
|
||||
GetByIDAny(ctx context.Context, id []byte) (*File, error)
|
||||
GetByObjectKey(ctx context.Context, objectKey string) (*File, error)
|
||||
GetByFolderAndName(ctx context.Context, folderID []byte, nameNormalized string) (*File, error)
|
||||
GetByTemplateAndTakeover(ctx context.Context, templateUUID, takeoverID []byte) (*File, error)
|
||||
ListEditedTemplatesByTakeoverID(ctx context.Context, takeoverID []byte) ([]File, error)
|
||||
ListByFolder(ctx context.Context, folderID []byte, sort string, limit, offset int) ([]File, int64, error)
|
||||
SearchByName(ctx context.Context, name string, sort string, limit, offset int) ([]File, int64, error)
|
||||
ListTrashByFolder(ctx context.Context, folderID []byte, sort string, limit, offset int) ([]File, int64, error)
|
||||
}
|
||||
|
||||
type FileLifecycleTransitionParams struct {
|
||||
ID []byte
|
||||
Status string
|
||||
UpdatedBy []byte
|
||||
AttachedAt *time.Time
|
||||
OrphanedAt *time.Time
|
||||
LifecycleDelete *time.Time
|
||||
ClearOrphanedAt bool
|
||||
}
|
||||
|
||||
type FileLifecycleListFilter struct {
|
||||
Status string
|
||||
OrphanedBeforeEq *time.Time
|
||||
CreatedBeforeEq *time.Time
|
||||
ExcludeInTrash bool
|
||||
ExcludeLifecycleDeleted bool
|
||||
Limit int
|
||||
}
|
||||
|
||||
type FileLifecycleRepository interface {
|
||||
UpdateLifecycle(ctx context.Context, params FileLifecycleTransitionParams) error
|
||||
IsFileReferenced(ctx context.Context, fileID []byte) (bool, error)
|
||||
ListFilesByLifecycle(ctx context.Context, filter FileLifecycleListFilter) ([]File, error)
|
||||
}
|
||||
|
||||
type FileUploadIntentCompleteParams struct {
|
||||
ID []byte
|
||||
UpdatedBy []byte
|
||||
CompletedAt time.Time
|
||||
}
|
||||
|
||||
type FileUploadIntentExpireParams struct {
|
||||
ID []byte
|
||||
UpdatedBy []byte
|
||||
ExpiredAt time.Time
|
||||
}
|
||||
|
||||
type FileUploadIntentSizeUpdateParams struct {
|
||||
ID []byte
|
||||
SizeBytes int64
|
||||
UpdatedBy []byte
|
||||
}
|
||||
|
||||
type FileUploadIntentRepository interface {
|
||||
CreateUploadIntent(ctx context.Context, row *FileUploadIntent) error
|
||||
GetUploadIntentByID(ctx context.Context, id []byte) (*FileUploadIntent, error)
|
||||
GetUploadIntentByIDForUpdate(ctx context.Context, id []byte) (*FileUploadIntent, error)
|
||||
MarkUploadIntentCompleted(ctx context.Context, params FileUploadIntentCompleteParams) error
|
||||
MarkUploadIntentExpired(ctx context.Context, params FileUploadIntentExpireParams) error
|
||||
}
|
||||
|
||||
type AttachmentListFilter struct {
|
||||
RefType string
|
||||
RefID string
|
||||
Category *string
|
||||
Sort string
|
||||
Limit int
|
||||
Offset int
|
||||
}
|
||||
|
||||
type AttachmentRepository interface {
|
||||
Create(ctx context.Context, row *Attachment) error
|
||||
Delete(ctx context.Context, id []byte) error
|
||||
GetByID(ctx context.Context, id []byte) (*Attachment, error)
|
||||
GetByRefAndFile(ctx context.Context, refType, refID string, fileID []byte) (*Attachment, error)
|
||||
ListByReference(ctx context.Context, filter AttachmentListFilter) ([]Attachment, int64, error)
|
||||
}
|
||||
Reference in New Issue
Block a user