초기 커밋 - EV AS 관리 시스템

This commit is contained in:
root
2026-04-18 06:18:58 +09:00
commit 7a5c397983
52 changed files with 6044 additions and 0 deletions

29
backend/utils.py Normal file
View File

@@ -0,0 +1,29 @@
import os, uuid, qrcode
from PIL import Image
from fastapi import UploadFile
UPLOAD_DIR = os.getenv("UPLOAD_DIR", "/uploads")
def save_upload(file: UploadFile, sub_dir: str = "general") -> str:
"""파일을 저장하고 /uploads 기준 상대 경로 반환"""
ext = os.path.splitext(file.filename or "file")[1].lower() or ".jpg"
folder = os.path.join(UPLOAD_DIR, sub_dir)
os.makedirs(folder, exist_ok=True)
filename = f"{uuid.uuid4().hex}{ext}"
filepath = os.path.join(folder, filename)
with open(filepath, "wb") as f:
f.write(file.file.read())
return f"/uploads/{sub_dir}/{filename}"
def generate_qr(charger_id: str, domain: str) -> str:
"""QR 이미지를 저장하고 /uploads 기준 경로 반환"""
url = f"https://{domain}/report/{charger_id}"
qr = qrcode.QRCode(version=1, box_size=10, border=4)
qr.add_data(url)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
folder = os.path.join(UPLOAD_DIR, "qr")
os.makedirs(folder, exist_ok=True)
filepath = os.path.join(folder, f"{charger_id}.png")
img.save(filepath)
return f"/uploads/qr/{charger_id}.png"