init project

This commit is contained in:
m
2026-07-11 20:12:00 +02:00
commit b1f7fe6959
42 changed files with 7930 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
package handlers
import (
"net/http"
"github.com/gin-gonic/gin"
)
func ListFiles(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"data": []interface{}{},
"meta": gin.H{
"page": 1,
"total": 0,
},
})
}
func GetFile(c *gin.Context) {
c.JSON(http.StatusNotFound, gin.H{
"error": gin.H{
"code": "FILE_NOT_FOUND",
"message": "File not found",
},
})
}
func UploadFile(c *gin.Context) {
c.JSON(http.StatusNotImplemented, gin.H{
"error": gin.H{
"code": "NOT_IMPLEMENTED",
"message": "Upload not yet implemented",
},
})
}
func DeleteFile(c *gin.Context) {
c.JSON(http.StatusNotImplemented, gin.H{
"error": gin.H{
"code": "NOT_IMPLEMENTED",
"message": "Delete not yet implemented",
},
})
}
func SearchFiles(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"data": []interface{}{},
"meta": gin.H{
"page": 1,
"total": 0,
},
})
}
func AddTags(c *gin.Context) {
c.JSON(http.StatusNotImplemented, gin.H{
"error": gin.H{
"code": "NOT_IMPLEMENTED",
"message": "Add tags not yet implemented",
},
})
}
func GetTags(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"data": []interface{}{},
})
}
+15
View File
@@ -0,0 +1,15 @@
package handlers
import (
"net/http"
"github.com/gin-gonic/gin"
)
func Health(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"data": gin.H{
"status": "healthy",
},
})
}
+25
View File
@@ -0,0 +1,25 @@
package handlers
import (
"net/http"
"github.com/gin-gonic/gin"
)
func CreateOcrJob(c *gin.Context) {
c.JSON(http.StatusNotImplemented, gin.H{
"error": gin.H{
"code": "NOT_IMPLEMENTED",
"message": "OCR job creation not yet implemented",
},
})
}
func GetOcrJobStatus(c *gin.Context) {
c.JSON(http.StatusNotFound, gin.H{
"error": gin.H{
"code": "JOB_NOT_FOUND",
"message": "OCR job not found",
},
})
}
+43
View File
@@ -0,0 +1,43 @@
package models
import "time"
type File struct {
ID string `json:"id"`
Name string `json:"name"`
MimeType string `json:"mimeType"`
Size int64 `json:"size"`
Path string `json:"-"`
OcrText string `json:"ocrText,omitempty"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
type Tag struct {
ID string `json:"id"`
Name string `json:"name"`
}
type OcrJob struct {
ID string `json:"id"`
FileID string `json:"fileId"`
Status string `json:"status"`
Result string `json:"result,omitempty"`
CreatedAt time.Time `json:"createdAt"`
CompletedAt *time.Time `json:"completedAt,omitempty"`
}
type PaginatedResponse struct {
Data interface{} `json:"data"`
Meta struct {
Page int `json:"page"`
Total int `json:"total"`
} `json:"meta"`
}
type ErrorResponse struct {
Error struct {
Code string `json:"code"`
Message string `json:"message"`
} `json:"error"`
}