feat: initial commit - Phase 1 & 2 core features

This commit is contained in:
hiderfong
2026-04-22 17:07:33 +08:00
commit 1773bda06b
25005 changed files with 6252106 additions and 0 deletions
View File
+32
View File
@@ -0,0 +1,32 @@
from app.tasks.worker import celery_app
@celery_app.task(bind=True)
def auto_classify_task(self, project_id: int, source_ids: list = None):
"""
Async task to run automatic classification on metadata.
Phase 1 placeholder.
"""
from app.core.database import SessionLocal
from app.models.project import ClassificationProject, ClassificationResult, ResultStatus
from app.models.classification import RecognitionRule
from app.models.metadata import DataColumn
db = SessionLocal()
try:
project = db.query(ClassificationProject).filter(ClassificationProject.id == project_id).first()
if not project:
return {"status": "failed", "reason": "project not found"}
# Update project status
project.status = "scanning"
db.commit()
rules = db.query(RecognitionRule).filter(RecognitionRule.is_active == True).all()
# TODO: implement rule matching logic in Phase 2
project.status = "assigning"
db.commit()
return {"status": "completed", "project_id": project_id, "matched": 0}
finally:
db.close()
+20
View File
@@ -0,0 +1,20 @@
from celery import Celery
from app.core.config import settings
celery_app = Celery(
"prop_data_guard",
broker=settings.REDIS_URL,
backend=settings.REDIS_URL,
include=["app.tasks.classification_tasks"],
)
celery_app.conf.update(
task_serializer="json",
accept_content=["json"],
result_serializer="json",
timezone="Asia/Shanghai",
enable_utc=True,
task_track_started=True,
task_time_limit=3600,
worker_prefetch_multiplier=1,
)