UPDATE: Add super admin

This commit is contained in:
2026-03-30 23:48:37 +07:00
parent 44d0d0c973
commit 62d4b889d1
18 changed files with 1061 additions and 16 deletions

View File

@@ -0,0 +1,77 @@
package services
import (
"context"
"history-api/internal/dtos/request"
"history-api/internal/dtos/response"
"history-api/internal/repositories"
"history-api/pkg/storage"
"mime/multipart"
)
type MediaService interface {
GetMediaByID(ctx context.Context, mediaId string) (*response.MediaResponse, error)
GetMediaByUserID(ctx context.Context, userId string) ([]*response.MediaResponse, error)
SearchMedia(ctx context.Context, dto *request.SearchMediaDto) (*response.PaginatedResponse, error)
DeleteMedia(ctx context.Context, mediaId string) error
GetMediaByTarget(ctx context.Context, targetType string, targetId string) ([]*response.MediaResponse, error)
UploadServerSide(ctx context.Context, userId string, fileHeader *multipart.FileHeader) (*response.MediaResponse, error)
GeneratePresignedURL(ctx context.Context, userId string, dto *request.PreSignedDto) (*response.PreSignedResponse, error)
PreSignedCompleted(ctx context.Context, userId string, dto *request.PreSignedCompleteDto) (*response.MediaResponse, error)
}
type mediaService struct {
mediaRepo repositories.MediaRepository
s storage.Storage
}
func NewMediaService(
mediaRepo repositories.MediaRepository,
s storage.Storage,
) MediaService {
return &mediaService{
mediaRepo: mediaRepo,
s: s,
}
}
// DeleteMedia implements [MediaService].
func (m *mediaService) DeleteMedia(ctx context.Context, mediaId string) error {
panic("unimplemented")
}
// GeneratePresignedURL implements [MediaService].
func (m *mediaService) GeneratePresignedURL(ctx context.Context, userId string, dto *request.PreSignedDto) (*response.PreSignedResponse, error) {
panic("unimplemented")
}
// GetMediaByID implements [MediaService].
func (m *mediaService) GetMediaByID(ctx context.Context, mediaId string) (*response.MediaResponse, error) {
panic("unimplemented")
}
// GetMediaByTarget implements [MediaService].
func (m *mediaService) GetMediaByTarget(ctx context.Context, targetType string, targetId string) ([]*response.MediaResponse, error) {
panic("unimplemented")
}
// GetMediaByUserID implements [MediaService].
func (m *mediaService) GetMediaByUserID(ctx context.Context, userId string) ([]*response.MediaResponse, error) {
panic("unimplemented")
}
// PreSignedCompleted implements [MediaService].
func (m *mediaService) PreSignedCompleted(ctx context.Context, userId string, dto *request.PreSignedCompleteDto) (*response.MediaResponse, error) {
panic("unimplemented")
}
// SearchMedia implements [MediaService].
func (m *mediaService) SearchMedia(ctx context.Context, dto *request.SearchMediaDto) (*response.PaginatedResponse, error) {
panic("unimplemented")
}
// UploadServerSide implements [MediaService].
func (m *mediaService) UploadServerSide(ctx context.Context, userId string, fileHeader *multipart.FileHeader) (*response.MediaResponse, error) {
panic("unimplemented")
}