init
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package contract
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type ListFilesQuery struct {
|
||||
OrganizationID string `form:"organization_id"`
|
||||
UserID string `form:"user_id"`
|
||||
FileType string `form:"file_type"`
|
||||
IsPublic string `form:"is_public"`
|
||||
DateFrom string `form:"date_from"`
|
||||
DateTo string `form:"date_to"`
|
||||
Search string `form:"search"`
|
||||
Page int `form:"page,default=1"`
|
||||
Limit int `form:"limit,default=10"`
|
||||
}
|
||||
|
||||
// Request DTOs
|
||||
type UploadFileRequest struct {
|
||||
FileType string `json:"file_type" validate:"required"`
|
||||
IsPublic *bool `json:"is_public,omitempty"`
|
||||
Metadata map[string]interface{} `json:"metadata,omitempty"`
|
||||
}
|
||||
|
||||
type UpdateFileRequest struct {
|
||||
IsPublic *bool `json:"is_public,omitempty"`
|
||||
Metadata map[string]interface{} `json:"metadata,omitempty"`
|
||||
}
|
||||
|
||||
type ListFilesRequest struct {
|
||||
OrganizationID *uuid.UUID `json:"organization_id,omitempty"`
|
||||
UserID *uuid.UUID `json:"user_id,omitempty"`
|
||||
FileType *string `json:"file_type,omitempty"`
|
||||
IsPublic *bool `json:"is_public,omitempty"`
|
||||
DateFrom *time.Time `json:"date_from,omitempty"`
|
||||
DateTo *time.Time `json:"date_to,omitempty"`
|
||||
Search string `json:"search,omitempty"`
|
||||
Page int `json:"page" validate:"required,min=1"`
|
||||
Limit int `json:"limit" validate:"required,min=1,max=100"`
|
||||
}
|
||||
|
||||
// Response DTOs
|
||||
type FileResponse struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
OrganizationID uuid.UUID `json:"organization_id"`
|
||||
UserID uuid.UUID `json:"user_id"`
|
||||
FileName string `json:"file_name"`
|
||||
OriginalName string `json:"original_name"`
|
||||
FileURL string `json:"file_url"`
|
||||
FileSize int64 `json:"file_size"`
|
||||
MimeType string `json:"mime_type"`
|
||||
FileType string `json:"file_type"`
|
||||
UploadPath string `json:"upload_path"`
|
||||
IsPublic bool `json:"is_public"`
|
||||
Metadata map[string]interface{} `json:"metadata,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type ListFilesResponse struct {
|
||||
Files []*FileResponse `json:"files"`
|
||||
TotalCount int `json:"total_count"`
|
||||
Page int `json:"page"`
|
||||
Limit int `json:"limit"`
|
||||
TotalPages int `json:"total_pages"`
|
||||
}
|
||||
|
||||
type UploadFileResponse struct {
|
||||
File FileResponse `json:"file"`
|
||||
}
|
||||
Reference in New Issue
Block a user