Files
pyqcrm/lib/domain/Applicant.py
2025-04-24 01:37:09 +02:00

45 lines
1.4 KiB
Python

from peewee import CharField, UUIDField, SmallIntegerField, TextField, ForeignKeyField, JOIN
from lib.domain.Town import Town
from lib.domain.BaseModel import BaseModel
from lib.domain.ZipCode import ZipCode
class Applicant(BaseModel):
class Meta:
table_name = "applicants"
id = UUIDField(primary_key=True)
title = SmallIntegerField(default=0)
first_name = CharField(null=False)
last_name = CharField(null=False)
street = CharField()
house_number = CharField()
zip_code = ForeignKeyField(ZipCode, column_name="zip_code", null=True)
phone_number = CharField()
mobile_number = CharField()
email_address = CharField()
salutation = TextField(null=False)
@classmethod
def select_table_data(cls, search_query: str):
return (
Applicant
.select(
Applicant.id,
Applicant.first_name,
Applicant.last_name,
ZipCode.id,
ZipCode.zip_code,
Town.town
)
.join(ZipCode, join_type="LEFT JOIN")
.join(Town, join_type="LEFT JOIN")
.where(
(Applicant.first_name.contains(search_query)) |
(Applicant.last_name.contains(search_query)) |
(ZipCode.zip_code.contains(search_query)) |
(Town.town.contains(search_query))
)
)