init push

This commit is contained in:
2026-07-16 22:16:45 +07:00
commit 8b068bdb10
1021 changed files with 332816 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
# File Manager Base Image Flow
This document explains upload + create flow specifically for base images.
## Purpose
This flow uploads base images and persists file metadata into a forced folder hierarchy:
- `__system_root_files__ > bases > <base-type> > <base-name>`
Main differences compared to regular file flow:
- dedicated upload endpoint: `POST /api/v1/file-manager/files/upload-base-image`
- dedicated create endpoint: `POST /api/v1/file-manager/files/create-base-image`
- `content_type` must be `image/*`
- `base_uuid` is required in the create request per item
- create step performs hard replace of existing files in target folder before creating new file
## Step 1 - Request Upload Intent (Base)
Endpoint:
- `POST /api/v1/file-manager/files/upload-base-image`
Validation highlights:
- `type` must be `file_manager_file_upload_intent`
- `name` required
- `content_type` required and must start with `image/`
- `size_bytes >= 0`
## Step 2 - Upload Binary to Object Storage
For each successful intent, frontend uploads binary with `PUT` to `upload_url`.
## Step 3 - Create File Record (Base)
Endpoint:
- `POST /api/v1/file-manager/files/create-base-image`
Validation highlights:
- `type` must be `file_manager_file_create` or `file_manager_file`
- `upload_intent_uuid` required and valid UUID
- `base_uuid` required and valid UUID
- `name` required
Backend behavior:
1. load base from `base_uuid`
2. resolve `base-type` from base category (e.g. `hems` or `regular`)
3. resolve/create folder path `__system_root_files__ > bases > <base-type> > <base-name>`
4. hard replace: delete + purge all existing files in that target folder
5. create file node from upload intent
Hard replace cleanup target:
- file row in DB
- original object in S3
- thumbnail object in S3 (if exists)
- related attachment metadata