Files
BiahadHakatonProject/db_repository/volunteer_repository.py
Dmitri Shimanski e12fd15e71 סיימתי את זה
Signed-off-by: Dmitri Shimanski <dshiafeed@gmail.com>
2025-04-08 17:09:27 +03:00

46 lines
1.5 KiB
Python

from db_repository.BaseRepositories import BaseCRUDRepository
from db_repository.schemas.volunteer import VolunteerSchema
from typing import List
class VolunteerRepository(BaseCRUDRepository):
table_name = "volunteers"
schema = VolunteerSchema
def _get_columns_definition(self) -> str:
return (
"name TEXT NOT NULL, "
"contact TEXT NOT NULL"
)
@property
def create_table_sql(self) -> str:
return f"""
CREATE TABLE IF NOT EXISTS {self.table_name} (
id INTEGER PRIMARY KEY AUTOINCREMENT,
{self._get_columns_definition()}
);
CREATE TABLE IF NOT EXISTS volunteer_apartments (
volunteer_id INTEGER NOT NULL,
apartment_id INTEGER NOT NULL,
FOREIGN KEY(volunteer_id) REFERENCES volunteers(id),
FOREIGN KEY(apartment_id) REFERENCES apartments(id)
);
"""
def add_apartment(self, volunteer_id: int, apartment_id: int):
query = """
INSERT INTO volunteer_apartments (volunteer_id, apartment_id)
VALUES (?, ?)
"""
self._execute(query, (volunteer_id, apartment_id))
def get_apartments(self, volunteer_id: int) -> List[int]:
query = """
SELECT apartment_id FROM volunteer_apartments
WHERE volunteer_id = ?
"""
results = self._execute(query, (volunteer_id,), fetch=True)
return [row[0] for row in results] if results else []