Initial commit: добавление проекта predictV1
Включает модели ML для предсказаний, API маршруты, скрипты обучения и данные. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
62
routes/match.py
Normal file
62
routes/match.py
Normal file
@@ -0,0 +1,62 @@
|
||||
from fastapi import APIRouter, HTTPException
|
||||
from pydantic import BaseModel
|
||||
from typing import List
|
||||
import psycopg2
|
||||
from psycopg2.extras import RealDictCursor
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
def get_db_connection():
|
||||
return psycopg2.connect(
|
||||
host="localhost",
|
||||
port=5432,
|
||||
database="korobka_db",
|
||||
user="postgres",
|
||||
password="postgres"
|
||||
)
|
||||
|
||||
class HeroDetail(BaseModel):
|
||||
hero_id: int
|
||||
team: int
|
||||
order: int
|
||||
|
||||
class MatchData(BaseModel):
|
||||
id: int
|
||||
start_time: int
|
||||
leagueid: int
|
||||
radiant_team_id: int
|
||||
dire_team_id: int
|
||||
radiant_win: bool
|
||||
heroes: List[HeroDetail]
|
||||
|
||||
@router.post("/match/pro/add")
|
||||
def add_pro_match(match: MatchData):
|
||||
conn = get_db_connection()
|
||||
cursor = conn.cursor()
|
||||
|
||||
try:
|
||||
# Добавляем матч в pro_matches
|
||||
cursor.execute("""
|
||||
INSERT INTO pro_matches (id, start_time, leagueid, radiant_team_id, dire_team_id, radiant_win)
|
||||
VALUES (%s, %s, %s, %s, %s, %s)
|
||||
ON CONFLICT (id) DO NOTHING
|
||||
""", (match.id, match.start_time, match.leagueid, match.radiant_team_id, match.dire_team_id, match.radiant_win))
|
||||
|
||||
# Добавляем детали героев в pro_details_match
|
||||
for hero in match.heroes:
|
||||
cursor.execute("""
|
||||
INSERT INTO pro_details_match (match_id, hero_id, team, "order")
|
||||
VALUES (%s, %s, %s, %s)
|
||||
""", (match.id, hero.hero_id, hero.team, hero.order))
|
||||
|
||||
conn.commit()
|
||||
cursor.close()
|
||||
conn.close()
|
||||
|
||||
return {"status": "success", "message": f"Match {match.id} added successfully"}
|
||||
|
||||
except Exception as e:
|
||||
conn.rollback()
|
||||
cursor.close()
|
||||
conn.close()
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
Reference in New Issue
Block a user