diff --git a/api_events/events/building/building_build_area.py b/api_events/events/building/building_build_area.py index 30ab7d6..170788f 100644 --- a/api_events/events/building/building_build_area.py +++ b/api_events/events/building/building_build_area.py @@ -13,7 +13,6 @@ from api_validations.validations_request import ( from api_validations.core_response import AlchemyJsonResponse from api_events.events.abstract_class import MethodToEvent, ActionsSchema -from api_events.events.building.building_build import BuildPatchEventMethods from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject @@ -35,18 +34,16 @@ class BuildAreaListEventMethods(MethodToEvent): Build.id == token_dict.selected_occupant.build_id, *Build.valid_record_args(Build), ).data - build_id_list = [build.id for build in build_ids] BuildArea.pre_query = BuildArea.filter_all( - BuildArea.build_id.in_(build_id_list), + BuildArea.build_id.in_([build.id for build in build_ids]), *BuildArea.valid_record_args(BuildArea), ).query elif isinstance(token_dict, EmployeeTokenObject): build_ids = Build.select_action( employee_id=token_dict.selected_company.employee_id ) - build_id_list = [build.id for build in build_ids] BuildArea.pre_query = BuildArea.filter_all( - BuildArea.build_id.in_(build_id_list), + BuildArea.build_id.in_([build.id for build in build_ids]), *BuildArea.valid_record_args(BuildArea), ).query BuildArea.filter_attr = list_options @@ -54,7 +51,7 @@ class BuildAreaListEventMethods(MethodToEvent): *BuildArea.valid_record_args(BuildArea), ) return AlchemyJsonResponse( - completed=True, message="Update Build record", result=records + completed=True, message="List of Build Area", result=records ) @@ -101,7 +98,7 @@ class BuildAreaCreateEventMethods(MethodToEvent): created_build_part.save() return AlchemyJsonResponse( completed=True, - message="Update Build record", + message="Created Build Area", result=created_build_part, ) diff --git a/api_events/events/building/building_build_sites.py b/api_events/events/building/building_build_sites.py index aadf22c..b8694e1 100644 --- a/api_events/events/building/building_build_sites.py +++ b/api_events/events/building/building_build_sites.py @@ -14,6 +14,7 @@ from api_validations.validations_request import ( from api_validations.core_response import AlchemyJsonResponse from api_events.events.abstract_class import MethodToEvent, ActionsSchema from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject +from databases.sql_models.identity.identity import Addresses class BuildSitesListEventMethods(MethodToEvent): @@ -30,22 +31,28 @@ class BuildSitesListEventMethods(MethodToEvent): token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject], ): if isinstance(token_dict, OccupantTokenObject): - build_ids = Build.filter_all( + occupants_build = Build.filter_one( Build.id == token_dict.selected_occupant.build_id, *Build.valid_record_args(Build), ).data - build_id_list = [build.id for build in build_ids] BuildSites.pre_query = BuildSites.filter_all( - BuildSites.build_id.in_(build_id_list), + BuildSites.address_id == occupants_build.address_id, *BuildSites.valid_record_args(BuildSites), ).query elif isinstance(token_dict, EmployeeTokenObject): - build_ids = Build.select_action( + employees_build = Build.select_action( employee_id=token_dict.selected_company.employee_id ) - build_id_list = [build.id for build in build_ids] + employees_build_list = [build.address_id for build in employees_build.all()] + if not employees_build_list: + BuildSites.raise_http_exception( + status_code="HTTP_404_NOT_FOUND", + error_case="NOT_FOUND", + message="Employee has no build sites registered", + data={}, + ) BuildSites.pre_query = BuildSites.filter_all( - BuildSites.build_id.in_(build_id_list), + BuildSites.address_id.in_(employees_build_list) *BuildSites.valid_record_args(BuildSites), ).query BuildSites.filter_attr = list_options diff --git a/api_events/events/company/company_company.py b/api_events/events/company/company_company.py index 0ab93f6..2c59974 100644 --- a/api_events/events/company/company_company.py +++ b/api_events/events/company/company_company.py @@ -38,11 +38,11 @@ class CompanyListEventMethods(MethodToEvent): ] ) elif isinstance(token_dict, OccupantTokenObject): - Companies.pre_query = Companies.filter_active( + Companies.pre_query = Companies.filter_all( Companies.id == token_dict.selected_occupant.responsible_company_id ).query Companies.filter_attr = list_options - records = Companies.filter_active( + records = Companies.filter_all( *Companies.valid_record_args(Companies) ) return AlchemyJsonResponse( diff --git a/api_events/events/company/company_department.py b/api_events/events/company/company_department.py index 4c349a5..000f436 100644 --- a/api_events/events/company/company_department.py +++ b/api_events/events/company/company_department.py @@ -30,8 +30,9 @@ class DepartmentListEventMethods(MethodToEvent): token_dict: EmployeeTokenObject, ): Departments.filter_attr = list_options - records = Departments.filter_active( + records = Departments.filter_all( Departments.company_id == token_dict.selected_company.company_id, + *Departments.valid_record_args(Departments) ) return AlchemyJsonResponse( completed=True, diff --git a/api_events/events/company/company_duties.py b/api_events/events/company/company_duties.py index cbca482..d9cdffb 100644 --- a/api_events/events/company/company_duties.py +++ b/api_events/events/company/company_duties.py @@ -64,9 +64,10 @@ class DutiesGetByUUIDEventMethods(MethodToEvent): status_code=status.HTTP_404_NOT_FOUND, ) - records = Duties.filter_active( + records = Duties.filter_all( Duties.duties_id == duty.id, Duties.company_id == token_dict.selected_company.company_id, + *Duties.valid_record_args(Duties) ) if not records.data: return JSONResponse( diff --git a/api_events/events/company/company_duty.py b/api_events/events/company/company_duty.py index eaa5d3e..f0c8b95 100644 --- a/api_events/events/company/company_duty.py +++ b/api_events/events/company/company_duty.py @@ -28,9 +28,7 @@ class DutyListEventMethods(MethodToEvent): token_dict: EmployeeTokenObject, ): Duty.filter_attr = list_options - records = Duty.filter_active( - *Duty.valid_record_args(Duty) - ) + records = Duty.filter_all(system=True) return AlchemyJsonResponse( completed=True, message="Duty list is brought successfully", diff --git a/api_events/events/company/company_employee.py b/api_events/events/company/company_employee.py index 451e736..70f40e8 100644 --- a/api_events/events/company/company_employee.py +++ b/api_events/events/company/company_employee.py @@ -29,9 +29,14 @@ class EmployeeListEventMethods(MethodToEvent): list_options: ListOptions, token_dict: EmployeeTokenObject, ): + employees_staff = Staff.filter_all( + Staff.duties_id.in_(token_dict.duty_id_list), + *Staff.valid_record_args(Staff), + ).data Employees.filter_attr = list_options - records = Employees.filter_active( - Employees.company_id == token_dict.selected_company.company_id, + records = Employees.filter_all( + Employees.staff_id.in_([staff.id for staff in employees_staff]), + *Employees.valid_record_args(Employees), ) return AlchemyJsonResponse( completed=True, @@ -210,7 +215,7 @@ class Employee2PeopleEmployEventMethods(MethodToEvent): detail="People record not found", ) - find_one_employee = Employees.filter_active( + find_one_employee = Employees.filter_all( Employees.staff_id == selected_staff.id, *Employees.valid_record_args(Employees), ).data diff --git a/api_events/events/company/company_staff.py b/api_events/events/company/company_staff.py index 583a612..993fdc6 100644 --- a/api_events/events/company/company_staff.py +++ b/api_events/events/company/company_staff.py @@ -25,7 +25,7 @@ class StaffListEventMethods(MethodToEvent): @classmethod def staff_list(cls, list_options: ListOptions, token_dict: EmployeeTokenObject): Staff.filter_attr = list_options - records = Staff.filter_active( + records = Staff.filter_all( *Staff.valid_record_args(Staff) ) return AlchemyJsonResponse( diff --git a/api_events/events/decision_book/decision_book_decision_book_items.py b/api_events/events/decision_book/decision_book_decision_book_items.py index bfed4e8..41acb7c 100644 --- a/api_events/events/decision_book/decision_book_decision_book_items.py +++ b/api_events/events/decision_book/decision_book_decision_book_items.py @@ -27,7 +27,6 @@ from api_validations.validations_request import ( InsertBuildDecisionBookItems, ListDecisionBook, ) -from service_app_test.test_application.evyos.datas.company_employee_data import list_options class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent): @@ -59,7 +58,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent): Build.uu_id == decision_book.build_decision_book_uu_id, ], ) - reachable_building = Build.filter_active() + reachable_building = Build.filter_all() if not reachable_building.data: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, @@ -73,7 +72,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent): ], filter_expr=[Companies.id == decision_book.company_id], ) - reachable_companies = Companies.filter_active() + reachable_companies = Companies.filter_all() if not reachable_companies.data: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, @@ -82,7 +81,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent): BuildDecisionBookItems.filter_attr = BuildDecisionBookItems.FilterModel( **data.dump() ) - records = BuildDecisionBookItems.filter_active( + records = BuildDecisionBookItems.filter_all( BuildDecisionBookItems.build_decision_book_id == decision_book.id ) return AlchemyJsonResponse( @@ -105,7 +104,7 @@ class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent): # occupant_id=token_dict.occupant_list["occupant_id"] # ) # BuildDecisionBookItems.filter_attr = list_options - # records = BuildDecisionBookItems.filter_active( + # records = BuildDecisionBookItems.filter_all( # *BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems) # ) # return return_json_response_from_alchemy(response=records, pagination=list_options) @@ -176,9 +175,10 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent): debit_start_date: str = None, debit_end_date: str = None, ): - build_parts_list = BuildParts.filter_active( + build_parts_list = BuildParts.filter_all( BuildParts.human_livable == True, BuildParts.build_id == build_id, + *BuildParts.valid_record_args(BuildParts) ) book_payment_dict = dict( payment_plan_time_periods=str(data_info_type.key), @@ -335,8 +335,9 @@ class DecisionBookDecisionBookItemsCreateEventMethods(MethodToEvent): decision_book=decision_book, token_dict=token_dict, ) - book_items = BuildDecisionBookItems.filter_active( + book_items = BuildDecisionBookItems.filter_all( BuildDecisionBookItems.build_decision_book_id == decision_book.id, + *BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems) ) data_dict["item_order"] = int(book_items.count) + 1 diff --git a/api_events/events/decision_book/decision_book_decision_book_items_debits.py b/api_events/events/decision_book/decision_book_decision_book_items_debits.py index 5d849fd..2680f71 100644 --- a/api_events/events/decision_book/decision_book_decision_book_items_debits.py +++ b/api_events/events/decision_book/decision_book_decision_book_items_debits.py @@ -34,12 +34,14 @@ class DecisionBookDecisionBookItemsDebitsListEventMethods(MethodToEvent): decision_book_id: str, token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject], ): - BuildDecisionBookItems.pre_query = BuildDecisionBookItems.filter_active( - BuildDecisionBookItems.decision_book_id == decision_book_id + BuildDecisionBookItems.pre_query = BuildDecisionBookItems.filter_all( + BuildDecisionBookItems.decision_book_id == decision_book_id, + *BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems) ).query BuildDecisionBookItems.filter_attr = None - records = BuildDecisionBookItems.filter_active( - BuildDecisionBookItems.decision_book_id == decision_book_id + records = BuildDecisionBookItems.filter_all( + BuildDecisionBookItems.decision_book_id == decision_book_id, + *BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems) ) return AlchemyJsonResponse( completed=True, @@ -89,12 +91,14 @@ class DecisionBookDecisionBookItemsDebitsCreateEventMethods(MethodToEvent): decision_book_items_debits["confirmed_by"] = None decision_book_items_debits["deleted_at"] = None decision_book_items_debits["deleted_by"] = None - BuildDecisionBookItems.pre_query = BuildDecisionBookItems.filter_active( - BuildDecisionBookItems.decision_book_id == decision_book_id + BuildDecisionBookItems.pre_query = BuildDecisionBookItems.filter_all( + BuildDecisionBookItems.decision_book_id == decision_book_id, + *BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems) ).query BuildDecisionBookItems.filter_attr = None - records = BuildDecisionBookItems.filter_active( - BuildDecisionBookItems.decision_book_id == decision_book_id + records = BuildDecisionBookItems.filter_all( + BuildDecisionBookItems.decision_book_id == decision_book_id, + *BuildDecisionBookItems.valid_record_args(BuildDecisionBookItems) ) return AlchemyJsonResponse( completed=True, diff --git a/api_events/events/decision_book/decision_book_decision_book_person.py b/api_events/events/decision_book/decision_book_decision_book_person.py index 0b09db8..3572f77 100644 --- a/api_events/events/decision_book/decision_book_decision_book_person.py +++ b/api_events/events/decision_book/decision_book_decision_book_person.py @@ -384,7 +384,7 @@ DecisionBookPersonAssignOccupantEventMethod = ( # Build.id == decision_book.build_id, # ], # ) -# reachable_building = Build.filter_active() +# reachable_building = Build.filter_all() # if not reachable_building.data: # raise HTTPException( # status_code=status.HTTP_404_NOT_FOUND, @@ -398,7 +398,7 @@ DecisionBookPersonAssignOccupantEventMethod = ( # ], # filter_expr=[Companies.id == decision_book.resp_company_id], # ) -# reachable_companies = Companies.filter_active() +# reachable_companies = Companies.filter_all() # if not reachable_companies.data: # raise HTTPException( # status_code=status.HTTP_404_NOT_FOUND, @@ -410,7 +410,7 @@ DecisionBookPersonAssignOccupantEventMethod = ( # status_code=status.HTTP_404_NOT_FOUND, # detail=f"No person is match with given UUID {data.person_uu_id}", # ) -# management_typecode = ApiEnumDropdown.filter_active( +# management_typecode = ApiEnumDropdown.filter_all( # ApiEnumDropdown.uu_id == data.management_typecode_uu_id, # ApiEnumDropdown.enum_class.in_("BuildManagementType", "BuildDuesTypes"), # ) diff --git a/api_events/tasks2events/employee_tasks/super_user.py b/api_events/tasks2events/employee_tasks/super_user.py index ea2562b..0980a8c 100644 --- a/api_events/tasks2events/employee_tasks/super_user.py +++ b/api_events/tasks2events/employee_tasks/super_user.py @@ -83,6 +83,10 @@ class SuperUserEventBlock(AddEventFunctionality): {"function_code": "0bb51845-65a2-4340-8872-a3b5aad95468"}, {"function_code": "a10571fa-ac1d-4546-9272-cacb911d8004"}, {"function_code": "58178738-7489-4f8f-954e-5c8f083c1845"}, + {"function_code": "36961d8a-cefa-46cc-9f7c-9d841d6351b6"}, + {"function_code": "46d90119-3b23-4784-8053-fe11da4a3584"}, + {"function_code": "c786e15c-c03e-4e8f-936c-7e5e5ec9bbcc"}, + {"function_code": ""}, ] def __new__(cls, *args, **kwargs): diff --git a/api_validations/validations_request/core_request_validations.py b/api_validations/validations_request/core_request_validations.py index 6fb319a..a983c57 100644 --- a/api_validations/validations_request/core_request_validations.py +++ b/api_validations/validations_request/core_request_validations.py @@ -17,7 +17,6 @@ class PydanticBaseModel(BaseModelRegular): active: Optional[bool] = None deleted: Optional[bool] = None - is_confirmed: Optional[bool] = None expiry_starts: Optional[str] = None expiry_ends: Optional[str] = None diff --git a/api_validations/validations_request/create_model.py b/api_validations/validations_request/create_model.py index 0578ec4..ba71390 100644 --- a/api_validations/validations_request/create_model.py +++ b/api_validations/validations_request/create_model.py @@ -58,7 +58,7 @@ class ConvertField: # detail=f"Pydantic class {selected_model.model_type} not found in database. Please add model to api.", # ) # -# model_entities_records = ModelEntities.filter_active( +# model_entities_records = ModelEntities.filter_all( # ModelEntities.model_id == selected_model.id # ).data # diff --git a/api_validations/validations_request/decision_book.py b/api_validations/validations_request/decision_book.py index 07b5b74..5912847 100644 --- a/api_validations/validations_request/decision_book.py +++ b/api_validations/validations_request/decision_book.py @@ -28,7 +28,7 @@ class DecisionBookDecisionBookInvitationsUpdate(PydanticBaseModel): occupant_type_uu_id: Optional[str] = None -class ListDecisionBook(ListOptions, PydanticBaseModel): +class ListDecisionBook(ListOptions): build_decision_book_uu_id: Optional[str] = None diff --git a/databases/extensions/selector_classes.py b/databases/extensions/selector_classes.py index cb5603b..36c4f4f 100644 --- a/databases/extensions/selector_classes.py +++ b/databases/extensions/selector_classes.py @@ -70,8 +70,8 @@ class SelectAction: .select_from(cls) .join(cls.__many__table__, cls.__many__table__.member_id == cls.id) .filter( - cls.__many__table__.duties_id.in_(duty_id_list) - * SelectorsBase.add_confirmed_filter( + cls.__many__table__.duties_id.in_(duty_id_list), + *SelectorsBase.add_confirmed_filter( first_table=cls, second_table=cls.__many__table__ ), ) diff --git a/databases/sql_models/api/encrypter.py b/databases/sql_models/api/encrypter.py index fda1cb2..1c5f935 100644 --- a/databases/sql_models/api/encrypter.py +++ b/databases/sql_models/api/encrypter.py @@ -24,7 +24,7 @@ class CrypterEngine(CrudCollection): @classmethod def get_valid_keys(cls, row=None): cls.encrypt_list, cls.decrypt_list = [], [] - if not cls.filter_active( + if not cls.filter_all( cls.created_at > datetime.now() - timedelta(days=29) ).get(1): cls.create_encrypt_keys(count=100) @@ -35,7 +35,7 @@ class CrypterEngine(CrudCollection): decrypt_row.key_second.decode(), decrypt_row.uu_id, ) - if encrypt_rows := cls.filter_active( + if encrypt_rows := cls.filter_all( cls.created_at > datetime.now() - timedelta(days=29) ).data: encrypt_row = random.choice(encrypt_rows) diff --git a/databases/sql_models/building/build.py b/databases/sql_models/building/build.py index bdc8944..1c9a340 100644 --- a/databases/sql_models/building/build.py +++ b/databases/sql_models/building/build.py @@ -28,85 +28,6 @@ from api_validations.validations_request import ( ) from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject -# -# class AbstractBuild: -# """ -# Abstract and explanation of Build class for end-user guide -# """ -# -# gov_address_code = Explanation( -# explanation="Devletin resmi adres kodudur.", -# usage="Devletin resmi adres kodu istendiğinde kullanılır.", -# alias="Devlet Adres Kodu", -# example=["1234567890"], -# ) -# build_name = Explanation( -# explanation="Bina adıdır.", -# usage="Bina adı istendiğinde kullanılır.", -# alias="Bina Adı", -# example=["X Binası", "Y Binası"], -# ) -# build_no = Explanation( -# explanation="Bina numarasıdır.", -# usage="Bina numarası istendiğinde kullanılır.", -# alias="Bina No", -# example=["1234567890"], -# ) -# build_types = Explanation( -# explanation="Bina türüdür.", -# usage="Bina türü istendiğinde kullanılır.", -# alias="Bina Türü", -# example=["Ofis", "Konut", "Depo"], -# ) -# max_floor = Explanation( -# explanation="Bina kat sayısıdır.", -# usage="Bina kat sayısı istendiğinde kullanılır.", -# alias="Kat Sayısı", -# example=["1", "2", "3"], -# ) -# underground_floor = Explanation( -# explanation="Bina bodrum kat sayısıdır.", -# usage="Bina bodrum kat sayısı istendiğinde kullanılır.", -# alias="Bodrum Kat Sayısı", -# example=["1", "2", "3"], -# ) -# build_date = Explanation( -# explanation="Bina yapım tarihidir.", -# usage="Bina yapım tarihi istendiğinde kullanılır.", -# alias="Yapım Tarihi", -# example=["2021-01-01"], -# ) -# tax_no = Explanation( -# explanation="Bina vergi numarasıdır.", -# usage="Bina vergi numarası istendiğinde kullanılır.", -# alias="Vergi No", -# example=["1234567890"], -# ) -# lift_count = Explanation( -# explanation="Bina asansör sayısıdır.", -# usage="Bina asansör sayısı istendiğinde kullanılır.", -# alias="Asansör Sayısı", -# example=["1", "2", "3"], -# ) -# heating_system = Explanation( -# explanation="Bina ısıtma sistemi var mı?", -# usage="Bina ısıtma sistemi var mı istendiğinde kullanılır.", -# alias="Isıtma Sistemi", -# example=[True, False], -# ) -# cooling_system = Explanation( -# explanation="Bina soğutma sistemi var mı?", -# usage="Bina soğutma sistemi var mı istendiğinde kullanılır.", -# alias="Soğutma Sistemi", -# example=[True, False], -# ) -# hot_water_system = Explanation( -# explanation="Bina sıcak su sistemi var mı?", -# usage="Bina sıcak su sistemi var mı istendiğinde kullanılır.", -# alias="Sıcak Su Sistemi", -# example=[True, False], -# ) - class BuildTypes(CrudCollection): """ @@ -257,7 +178,7 @@ class Build(CrudCollection, SelectActionWithEmployee): site_uu_id: Mapped[str] = mapped_column(String, comment="Site UUID") address_id: Mapped[int] = mapped_column(ForeignKey("addresses.id")) address_uu_id: Mapped[str] = mapped_column(String, comment="Address UUID") - build_types_id = mapped_column( + build_types_id: Mapped[int] = mapped_column( ForeignKey("build_types.id"), nullable=False, comment="Building Type" ) build_types_uu_id: Mapped[str] = mapped_column(String, comment="Building Type UUID") @@ -376,8 +297,9 @@ class Build(CrudCollection, SelectActionWithEmployee): @property def livable_part_count(self): - livable_parts = BuildParts.filter_active( - BuildParts.build_id == self.id, BuildParts.human_livable == True + livable_parts = BuildParts.filter_all( + BuildParts.build_id == self.id, BuildParts.human_livable == True, + *BuildParts.valid_record_args(BuildParts) ) if not livable_parts.data: raise HTTPException( @@ -420,34 +342,34 @@ class BuildParts(CrudCollection): __enum_list__ = [("part_direction", "Directions", "NN")] # https://adres.nvi.gov.tr/VatandasIslemleri/AdresSorgu - address_gov_code = mapped_column( + address_gov_code: Mapped[str] = mapped_column( String, nullable=False, comment="Goverment Door Code" ) # part_name: Mapped[str] = mapped_column(String(24), server_default="", nullable=False, comment="Part Name") - part_no = mapped_column( + part_no: Mapped[int] = mapped_column( SmallInteger, server_default="0", nullable=False, comment="Part Number" ) - part_level = mapped_column( + part_level: Mapped[int] = mapped_column( SmallInteger, server_default="0", comment="Building Part Level" ) - part_code = mapped_column( + part_code: Mapped[str] = mapped_column( String, server_default="", nullable=False, comment="Part Code" ) - part_gross_size = mapped_column( + part_gross_size: Mapped[int] = mapped_column( Integer, server_default="0", comment="Part Gross Size" ) - part_net_size = mapped_column(Integer, server_default="0", comment="Part Net Size") - default_accessory = mapped_column( + part_net_size: Mapped[int] = mapped_column(Integer, server_default="0", comment="Part Net Size") + default_accessory: Mapped[str] = mapped_column( Text, server_default="0", comment="Default Accessory" ) human_livable: Mapped[bool] = mapped_column( Boolean, server_default="1", comment="Human Livable" ) - due_part_key = mapped_column( + due_part_key: Mapped[str] = mapped_column( String, server_default="", nullable=False, comment="Constant Payment Group" ) - build_id = mapped_column( + build_id: Mapped[int] = mapped_column( ForeignKey("build.id"), nullable=False, comment="Building ID" ) build_uu_id: Mapped[str] = mapped_column( @@ -456,13 +378,13 @@ class BuildParts(CrudCollection): part_direction_id: Mapped[int] = mapped_column( ForeignKey("api_enum_dropdown.id"), nullable=True ) - part_direction_uu_id = mapped_column( + part_direction_uu_id: Mapped[str] = mapped_column( String, nullable=True, comment="Part Direction UUID" ) - part_type_id = mapped_column( + part_type_id: Mapped[int] = mapped_column( ForeignKey("build_types.id"), nullable=False, comment="Building Part Type" ) - part_type_uu_id = mapped_column( + part_type_uu_id: Mapped[str] = mapped_column( String, nullable=False, comment="Building Part Type UUID" ) @@ -558,12 +480,12 @@ class BuildLivingSpace(CrudCollection): __exclude__fields__ = [] __include__fields__ = [] - fix_value = mapped_column( + fix_value: Mapped[float] = mapped_column( Numeric(20, 6), server_default="0", comment="Fixed value is deducted from debit.", ) - fix_percent = mapped_column( + fix_percent: Mapped[float] = mapped_column( Numeric(6, 2), server_default="0", comment="Fixed percent is deducted from debit.", @@ -573,19 +495,19 @@ class BuildLivingSpace(CrudCollection): String, server_default="", comment="Agreement No" ) marketing_process: Mapped[bool] = mapped_column(Boolean, server_default="False") - marketing_layer = mapped_column(SmallInteger, server_default="0") + marketing_layer: Mapped[int] = mapped_column(SmallInteger, server_default="0") discounted_percentage: Mapped[float] = mapped_column( Numeric(6, 2), server_default="0.00" ) # %22 - discounted_price = mapped_column( + discounted_price: Mapped[float] = mapped_column( Numeric(20, 2), server_default="0.00" ) # Normal: 78.00 TL - calculated_price = mapped_column( + calculated_price: Mapped[float] = mapped_column( Numeric(20, 2), server_default="0.00" ) # sana düz 75.00 TL yapar - build_parts_id = mapped_column( + build_parts_id: Mapped[int] = mapped_column( ForeignKey("build_parts.id"), nullable=False, index=True, @@ -594,21 +516,21 @@ class BuildLivingSpace(CrudCollection): build_parts_uu_id: Mapped[str] = mapped_column( String, nullable=False, comment="Build Part UUID" ) - person_id = mapped_column( + person_id: Mapped[int] = mapped_column( ForeignKey("people.id"), nullable=False, index=True, comment="Responsible People ID", ) - person_uu_id = mapped_column( + person_uu_id: Mapped[str] = mapped_column( String, nullable=False, comment="Responsible People UUID" ) - occupant_type = mapped_column( + occupant_type: Mapped[int] = mapped_column( ForeignKey("occupant_types.id"), nullable=False, comment="Occupant Type", ) - occupant_type_uu_id = mapped_column( + occupant_type_uu_id: Mapped[str] = mapped_column( String, nullable=False, comment="Occupant Type UUID" ) __table_args__ = ( @@ -649,11 +571,13 @@ class BuildLivingSpace(CrudCollection): def find_living_from_customer_id( cls, customer_id, process_date, add_days: int = 32 ): - formatted_date = datetime.strptime(str(process_date), "%Y-%m-%d %H:%M:%S") - living_spaces = cls.filter_active( + from api_library.date_time_actions.date_functions import system_arrow + formatted_date = system_arrow.get(str(process_date)) + living_spaces = cls.filter_all( or_( cls.owner_person_id == customer_id, cls.life_person_id == customer_id, + *cls.valid_record_args(cls) ), cls.start_date < formatted_date - timedelta(days=add_days), cls.stop_date > formatted_date + timedelta(days=add_days), @@ -678,11 +602,11 @@ class BuildArea(CrudCollection): size = mapped_column(Integer, server_default="0") build_id: Mapped[int] = mapped_column(ForeignKey("build.id")) - build_uu_id = mapped_column(String, comment="Building UUID") - part_type_id = mapped_column( + build_uu_id: Mapped[str] = mapped_column(String, comment="Building UUID") + part_type_id: Mapped[int] = mapped_column( ForeignKey("build_types.id"), nullable=True, comment="Building Part Type" ) - part_type_uu_id = mapped_column( + part_type_uu_id: Mapped[str] = mapped_column( String, nullable=True, comment="Building Part Type UUID" ) @@ -704,11 +628,11 @@ class BuildSites(CrudCollection): __exclude__fields__ = [] __include__fields__ = [] - site_name = mapped_column(String(24), nullable=False) - site_no = mapped_column(String(8), nullable=False) + site_name : Mapped[str]= mapped_column(String(24), nullable=False) + site_no: Mapped[str] = mapped_column(String(8), nullable=False) address_id: Mapped[int] = mapped_column(ForeignKey("addresses.id")) - address_uu_id = mapped_column(String, comment="Address UUID") + address_uu_id: Mapped[str] = mapped_column(String, comment="Address UUID") # addresses: Mapped["Address"] = relationship( # "Address", back_populates="site", foreign_keys=[address_id] @@ -733,14 +657,14 @@ class BuildCompaniesProviding(CrudCollection): build_id = mapped_column( ForeignKey("build.id"), nullable=False, comment="Building ID" ) - build_uu_id = mapped_column(String, nullable=True, comment="Providing UUID") + build_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID") company_id: Mapped[int] = mapped_column(ForeignKey("companies.id")) - company_uu_id = mapped_column(String, nullable=True, comment="Providing UUID") + company_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID") provide_id: Mapped[int] = mapped_column( ForeignKey("api_enum_dropdown.id"), nullable=True ) - provide_uu_id = mapped_column(String, nullable=True, comment="Providing UUID") - contract_id = mapped_column(Integer, ForeignKey("companies.id"), nullable=True) + provide_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID") + contract_id: Mapped[int] = mapped_column(Integer, ForeignKey("companies.id"), nullable=True) __table_args__ = ( Index( @@ -764,14 +688,14 @@ class BuildPersonProviding(CrudCollection): build_id = mapped_column( ForeignKey("build.id"), nullable=False, comment="Building ID" ) - build_uu_id = mapped_column(String, nullable=True, comment="Providing UUID") + build_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID") people_id: Mapped[int] = mapped_column(ForeignKey("people.id")) - people_uu_id = mapped_column(String, nullable=True, comment="People UUID") + people_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="People UUID") provide_id: Mapped[int] = mapped_column( ForeignKey("api_enum_dropdown.id"), nullable=True ) - provide_uu_id = mapped_column(String, nullable=True, comment="Providing UUID") - contract_id = mapped_column(Integer, ForeignKey("companies.id"), nullable=True) + provide_uu_id: Mapped[str] = mapped_column(String, nullable=True, comment="Providing UUID") + contract_id: Mapped[int] = mapped_column(Integer, ForeignKey("companies.id"), nullable=True) __table_args__ = ( Index( diff --git a/databases/sql_models/building/decision_book.py b/databases/sql_models/building/decision_book.py index 3612cfd..cb8c9a1 100644 --- a/databases/sql_models/building/decision_book.py +++ b/databases/sql_models/building/decision_book.py @@ -302,7 +302,7 @@ class BuildDecisionBookInvitations(CrudCollection): first_book_invitation.living_part_percentage ) valid_invite_count = ( - BuildDecisionBookPerson.filter_active( + BuildDecisionBookPerson.filter_all( BuildDecisionBookPerson.invite_id == first_book_invitation.id, BuildDecisionBookPerson.build_decision_book_id == selected_decision_book.id, @@ -400,12 +400,12 @@ class BuildDecisionBookPerson(CrudCollection): ) def retrieve_all_occupant_types(self): - all_decision_book_people = self.filter_active( + all_decision_book_people = self.filter_all( BuildDecisionBookPersonOccupants.invite_id == self.invite_id, - filter_records=False, + system=True, ) BuildDecisionBookPersonOccupants.pre_query = all_decision_book_people.query - return BuildDecisionBookPersonOccupants.filter_active(filter_records=False) + return BuildDecisionBookPersonOccupants.filter_all(system=True) def add_occupant_type(self, occupant_type, build_living_space_id: int = None): from databases import ( @@ -665,18 +665,19 @@ class BuildDecisionBookItems(CrudCollection): ) ) occupant_type_required_list = ("MT-PRS", "MT-WRT", "BU-MNG", "BU-SPV") - occupant_type_list = OccupantTypes.filter_active( - OccupantTypes.occupant_code.in_(occupant_type_required_list) + occupant_type_list = OccupantTypes.filter_all( + OccupantTypes.occupant_code.in_(occupant_type_required_list), + system=True, ) # active_invite = invitations[1] if invitations[1] else invitations[0] invitation = BuildDecisionBookInvitations.find_one(id=active_invite.id) people_book_attend_count = None if invitation.invitation_attempt == 1: - people_book_attend_is_attending = BuildDecisionBookPerson.filter_active( + people_book_attend_is_attending = BuildDecisionBookPerson.filter_all( BuildDecisionBookPerson.invite_id == invitation.id, BuildDecisionBookPerson.is_attending == True, ) - people_book_attend = BuildDecisionBookPersonOccupants.filter_active( + people_book_attend = BuildDecisionBookPersonOccupants.filter_all( BuildDecisionBookPersonOccupants.build_decision_book_person_id.in_( [person.id for person in people_book_attend_is_attending.data] ), diff --git a/databases/sql_models/identity/identity.py b/databases/sql_models/identity/identity.py index 9bb6704..2ecf783 100644 --- a/databases/sql_models/identity/identity.py +++ b/databases/sql_models/identity/identity.py @@ -181,7 +181,7 @@ class Users(CrudCollection, UserLoginModule, SelectAction): found_employees = Employees.filter_by_active( people_id=found_person.id, is_confirmed=True ) - found_duties = Duties.filter_active( + found_duties = Duties.filter_all( Duties.is_confirmed == True, Duties.id.in_( list(found_employee.duty_id for found_employee in found_employees.data) @@ -866,7 +866,7 @@ class OccupantTypes(CrudCollection): @classmethod def get_manager_occupant_type(cls): - if occupant_types := cls.filter_active( + if occupant_types := cls.filter_all( cls.occupant_is_unique == True, cls.occupant_category_type == "MT" ).data: return [occupant.uu_id.__str__() for occupant in occupant_types] diff --git a/service_app/routers/company/duties/router.py b/service_app/routers/company/duties/router.py index 1f9d968..6bf6cc0 100644 --- a/service_app/routers/company/duties/router.py +++ b/service_app/routers/company/duties/router.py @@ -19,7 +19,7 @@ duties_route.include_router(duties_route, include_in_schema=True) @duties_route.post(path="/list", summary="List Active/Delete/Confirm Duties") def company_duties_list(request: Request, list_options: ListOptions): token_dict = parse_token_object_to_dict(request=request) - return token_dict.available_event(data=list_options, token_dict=token_dict) + return token_dict.available_event(list_options=list_options, token_dict=token_dict) @duties_route.post(path="/get_by_duty_uuid", summary="Get Single Duty by Duty UUID") diff --git a/service_app/routers/company/employee/router.py b/service_app/routers/company/employee/router.py index 2fd0970..322c944 100644 --- a/service_app/routers/company/employee/router.py +++ b/service_app/routers/company/employee/router.py @@ -19,7 +19,7 @@ employee_route.include_router(employee_route, include_in_schema=True) @employee_route.post(path="/list", summary="List Active/Delete/Confirm Staff") def company_employee_list(request: Request, list_options: ListOptions): token_dict = parse_token_object_to_dict(request=request) - return token_dict.available_event(data=list_options, token_dict=token_dict) + return token_dict.available_event(list_options=list_options, token_dict=token_dict) @employee_route.post(path="/create", summary="Create Employee with given auth levels")