|
|
@@ -21,13 +21,13 @@ async def register(request: Request, user: schemas.UserCreate, lang: str = "en")
|
|
|
hashed_password = auth_utils.get_password_hash(user.password)
|
|
|
|
|
|
query = """
|
|
|
- INSERT INTO users (email, password_hash, first_name, last_name, phone, shipping_address, preferred_language, role, ip_address)
|
|
|
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
|
|
|
+ INSERT INTO users (email, password_hash, first_name, last_name, phone, shipping_address, preferred_language, role, ip_address, is_company, company_name, company_pib, company_address)
|
|
|
+ VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
|
|
"""
|
|
|
- params = (user.email, hashed_password, user.first_name, user.last_name, user.phone, user.shipping_address, user.preferred_language, 'user', ip_address)
|
|
|
+ params = (user.email, hashed_password, user.first_name, user.last_name, user.phone, user.shipping_address, user.preferred_language, 'user', ip_address, user.is_company, user.company_name, user.company_pib, user.company_address)
|
|
|
|
|
|
user_id = db.execute_commit(query, params)
|
|
|
- new_user = db.execute_query("SELECT id, email, first_name, last_name, phone, shipping_address, preferred_language, role, can_chat, is_active, ip_address, created_at FROM users WHERE id = %s", (user_id,))
|
|
|
+ new_user = db.execute_query("SELECT id, email, first_name, last_name, phone, shipping_address, preferred_language, role, can_chat, is_active, is_company, company_name, company_pib, company_address, ip_address, created_at FROM users WHERE id = %s", (user_id,))
|
|
|
return new_user[0]
|
|
|
|
|
|
@router.post("/login", response_model=schemas.Token)
|
|
|
@@ -94,7 +94,7 @@ async def reset_password(request: schemas.ResetPassword):
|
|
|
async def get_me(token: str = Depends(auth_utils.oauth2_scheme)):
|
|
|
payload = auth_utils.decode_token(token)
|
|
|
if not payload: raise HTTPException(status_code=401, detail="Invalid token")
|
|
|
- user = db.execute_query("SELECT id, email, first_name, last_name, phone, shipping_address, preferred_language, role, can_chat, is_active, ip_address, created_at FROM users WHERE id = %s", (payload.get("id"),))
|
|
|
+ user = db.execute_query("SELECT id, email, first_name, last_name, phone, shipping_address, preferred_language, role, can_chat, is_active, is_company, company_name, company_pib, company_address, ip_address, created_at FROM users WHERE id = %s", (payload.get("id"),))
|
|
|
if not user: raise HTTPException(status_code=404, detail="User not found")
|
|
|
return user[0]
|
|
|
|
|
|
@@ -112,7 +112,7 @@ async def update_me(data: schemas.UserUpdate, token: str = Depends(auth_utils.oa
|
|
|
query = f"UPDATE users SET {', '.join(update_fields)} WHERE id = %s"
|
|
|
params.append(user_id)
|
|
|
db.execute_commit(query, tuple(params))
|
|
|
- user = db.execute_query("SELECT id, email, first_name, last_name, phone, shipping_address, preferred_language, role, can_chat, is_active, ip_address, created_at FROM users WHERE id = %s", (user_id,))
|
|
|
+ user = db.execute_query("SELECT id, email, first_name, last_name, phone, shipping_address, preferred_language, role, can_chat, is_active, is_company, company_name, company_pib, company_address, ip_address, created_at FROM users WHERE id = %s", (user_id,))
|
|
|
return user[0]
|
|
|
|
|
|
@router.get("/admin/users")
|
|
|
@@ -122,7 +122,7 @@ async def admin_get_users(page: int = 1, size: int = 50, search: Optional[str] =
|
|
|
raise HTTPException(status_code=403, detail="Admin role required")
|
|
|
|
|
|
offset = (page - 1) * size
|
|
|
- base_query = "SELECT id, email, first_name, last_name, phone, role, can_chat, is_active, ip_address, created_at FROM users"
|
|
|
+ base_query = "SELECT id, email, first_name, last_name, phone, role, can_chat, is_active, is_company, company_name, company_pib, company_address, ip_address, created_at FROM users"
|
|
|
count_query = "SELECT COUNT(*) as total FROM users"
|
|
|
params = []
|
|
|
if search and search.strip():
|
|
|
@@ -155,7 +155,7 @@ async def admin_create_user(data: schemas.UserCreate, token: str = Depends(auth_
|
|
|
(data.email, hashed_password, data.first_name, data.last_name, data.phone, 'user', True)
|
|
|
)
|
|
|
|
|
|
- user = db.execute_query("SELECT id, email, first_name, last_name, phone, role, can_chat, is_active, created_at FROM users WHERE id = %s", (user_id,))
|
|
|
+ user = db.execute_query("SELECT id, email, first_name, last_name, phone, role, can_chat, is_active, is_company, company_name, company_pib, company_address, created_at FROM users WHERE id = %s", (user_id,))
|
|
|
return user[0]
|
|
|
|
|
|
@router.patch("/users/{target_id}/admin", response_model=schemas.UserResponse)
|