file-system/internal/domain/repository/file_meta_repository.go
向宁 3a18ca0579 feat: add directory structure and file sharing support
- PostgreSQL metadata overlay layer on top of existing S3 storage
- 3 new tables: folders, files, share_links
- Folder CRUD: create, get with children, tree, rename, delete (cascade)
- File operations: upload to folder, move between folders
- Share links: create with optional password/expiry/download limit, public access
- S3 compensation on PG write failure
- Existing 14 endpoints untouched
2026-05-20 20:26:19 +08:00

15 lines
471 B
Go

package repository
import (
"context"
"rag/file-system/internal/domain/model"
)
type FileMetaRepository interface {
Create(ctx context.Context, file *model.FileMeta) error
GetByID(ctx context.Context, id string) (*model.FileMeta, error)
GetByFolder(ctx context.Context, folderID string) ([]model.FileMeta, error)
Move(ctx context.Context, fileID string, targetFolderID string, ownerID string) error
Delete(ctx context.Context, id string, ownerID string) error
}