27 lines
986 B
Python
27 lines
986 B
Python
from typing import Optional
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.crud.base import CRUDBase
|
|
from app.models.customer import Customer
|
|
from app.schemas.customer import CustomerCreate, CustomerUpdate
|
|
|
|
class CRUDCustomer(CRUDBase[Customer, CustomerCreate, CustomerUpdate]):
|
|
def get_by_email(self, db: Session, *, email: str) -> Optional[Customer]:
|
|
return db.query(Customer).filter(Customer.email == email).first()
|
|
|
|
def create(self, db: Session, *, obj_in: CustomerCreate) -> Customer:
|
|
# Create a dict without policies (which are handled separately)
|
|
db_obj = Customer(
|
|
first_name=obj_in.first_name,
|
|
last_name=obj_in.last_name,
|
|
email=obj_in.email,
|
|
phone_number=obj_in.phone_number,
|
|
address=obj_in.address,
|
|
date_of_birth=obj_in.date_of_birth
|
|
)
|
|
db.add(db_obj)
|
|
db.commit()
|
|
db.refresh(db_obj)
|
|
return db_obj
|
|
|
|
customer = CRUDCustomer(Customer) |