STABLE: Final schema sync, optimized gitignore

This commit is contained in:
Kincses
2026-02-26 08:19:25 +01:00
parent 893f39fa15
commit 505543330a
203 changed files with 11590 additions and 9542 deletions

View File

@@ -1,52 +1,25 @@
# /opt/docker/dev/service_finder/backend/app/schemas/user.py
from pydantic import BaseModel, EmailStr, field_validator, ConfigDict
from typing import Optional
from datetime import date
# Alap adatok, amik mindenhol kellenek
class UserBase(BaseModel):
email: EmailStr
first_name: Optional[str] = None
last_name: Optional[str] = None
is_active: Optional[bool] = True
is_superuser: bool = False
is_active: bool = True
region_code: str = "HU"
# --- REGISZTRÁCIÓ ---
class UserRegister(UserBase):
password: str
birthday: Optional[date] = None
is_company: bool = False
company_name: Optional[str] = None
tax_number: Optional[str] = None
@field_validator('email')
@classmethod
def block_temporary_emails(cls, v: str) -> str:
blacklist = ['mailinator.com', '10minutemail.com', 'temp-mail.org', 'guerrillamail.com']
domain = v.split('@')[-1].lower()
if domain in blacklist:
raise ValueError('Ideiglenes email szolgáltató nem engedélyezett!')
return v
@field_validator('tax_number')
@classmethod
def validate_tax_id(cls, v: Optional[str], info) -> Optional[str]:
if info.data.get('is_company') and (not v or len(v) < 8):
raise ValueError('Cég esetén az adószám első 8 karaktere kötelező!')
return v
# --- VÁLASZ (Ezt hiányolta a rendszer!) ---
class UserResponse(UserBase):
id: int
is_company: bool
company_name: Optional[str] = None
# Pydantic V2 konfiguráció az ORM (SQLAlchemy) támogatáshoz
person_id: Optional[int] = None
role: str
subscription_plan: str
scope_level: str
scope_id: Optional[str] = None
model_config = ConfigDict(from_attributes=True)
# Frissítéshez használt séma
class UserUpdate(BaseModel):
password: Optional[str] = None
first_name: Optional[str] = None
last_name: Optional[str] = None
email: Optional[EmailStr] = None
preferred_language: Optional[str] = None