from typing import List, Optional from sqlalchemy.orm import Session from app.crud.base import CRUDBase from app.models.profile import Profile from app.schemas.profile import ProfileCreate, ProfileUpdate class CRUDProfile(CRUDBase[Profile, ProfileCreate, ProfileUpdate]): def get_by_user_id(self, db: Session, *, user_id: int) -> Optional[Profile]: return db.query(Profile).filter(Profile.user_id == user_id).first() def get_visible_profiles( self, db: Session, *, skip: int = 0, limit: int = 100 ) -> List[Profile]: return db.query(Profile).filter(Profile.is_visible).offset(skip).limit(limit).all() profile = CRUDProfile(Profile)