auth service up running

This commit is contained in:
2025-01-10 14:17:22 +03:00
parent 03accfed1b
commit 79aa3a1bc5
41 changed files with 480 additions and 340 deletions

View File

@@ -19,19 +19,19 @@ from .building_responses import (
BuildCompaniesProvidingResponse,
BuildCompaniesProvidingCollection,
BuildManagementResponse,
BuildManagementCollection
BuildManagementCollection,
)
from .account_responses import (
AccountRecordResponse,
AccountRecordCollection,
AccountRecordExchangeResponse,
AccountRecordExchangeCollection
AccountRecordExchangeCollection,
)
from .address_responses import ListAddressResponse, AddressPostCodeResponse
from .auth_responses import (
AuthenticationLoginResponse,
AuthenticationRefreshResponse,
AuthenticationUserInfoResponse
AuthenticationUserInfoResponse,
)
from .base_responses import BaseResponse, CrudCollection
from .budget_responses import (
@@ -42,13 +42,13 @@ from .budget_responses import (
DecisionBookBudgetMasterResponse,
DecisionBookBudgetMasterCollection,
DecisionBookBudgetsResponse,
DecisionBookBudgetsCollection
DecisionBookBudgetsCollection,
)
from .company_responses import (
CompanyListResponse,
CompanyDepartmentListResponse,
CompanyDutyListResponse,
CompanyEmployeeListResponse
CompanyEmployeeListResponse,
)
from .decision_book_responses import (
BuildDecisionBookResponse,
@@ -66,7 +66,7 @@ from .decision_book_responses import (
BuildDecisionBookPaymentsResponse,
BuildDecisionBookPaymentsCollection,
BuildDecisionBookLegalResponse,
BuildDecisionBookLegalCollection
BuildDecisionBookLegalCollection,
)
from .living_space_responses import LivingSpaceListResponse
from .parts_responses import BuildPartsListResponse
@@ -115,5 +115,5 @@ __all__ = [
"BuildDecisionBookLegalCollection",
"LivingSpaceListResponse",
"BuildPartsListResponse",
"PeopleListResponse"
"PeopleListResponse",
]

View File

@@ -8,6 +8,7 @@ from .base_responses import BaseResponse, CrudCollection
class AccountBooksResponse(BaseResponse):
"""Response model for account books"""
country: str
branch_type: int
company_id: int
@@ -18,11 +19,13 @@ class AccountBooksResponse(BaseResponse):
class AccountBooksCollection(CrudCollection[AccountBooksResponse]):
"""Collection of account books"""
pass
class AccountCodesResponse(BaseResponse):
"""Response model for account codes"""
account_code: str
comment_line: str
is_receive_or_debit: bool
@@ -42,11 +45,13 @@ class AccountCodesResponse(BaseResponse):
class AccountCodesCollection(CrudCollection[AccountCodesResponse]):
"""Collection of account codes"""
pass
class AccountCodeParserResponse(BaseResponse):
"""Response model for account code parser"""
account_code_1: str
account_code_2: str
account_code_3: str
@@ -59,11 +64,13 @@ class AccountCodeParserResponse(BaseResponse):
class AccountCodeParserCollection(CrudCollection[AccountCodeParserResponse]):
"""Collection of account code parsers"""
pass
class AccountMasterResponse(BaseResponse):
"""Response model for account master"""
doc_date: datetime
plug_type: str
plug_number: int
@@ -106,11 +113,13 @@ class AccountMasterResponse(BaseResponse):
class AccountMasterCollection(CrudCollection[AccountMasterResponse]):
"""Collection of account masters"""
pass
class AccountDetailResponse(BaseResponse):
"""Response model for account detail"""
doc_date: datetime
line_no: int
receive_debit: str
@@ -160,15 +169,16 @@ class AccountDetailResponse(BaseResponse):
class AccountDetailCollection(CrudCollection[AccountDetailResponse]):
"""Collection of account details"""
pass
class AccountRecordResponse(BaseResponse):
"""Response model for account financial records.
This model represents a financial transaction record in the system,
including bank transaction details, amounts, and related metadata.
Attributes:
iban (str): International Bank Account Number
bank_date (datetime): Date when the transaction occurred at the bank
@@ -206,6 +216,7 @@ class AccountRecordResponse(BaseResponse):
build_parts_uu_id (Optional[str]): Related building part ID
build_decision_book_uu_id (Optional[str]): Related decision book ID
"""
iban: str
bank_date: datetime
currency_value: Decimal
@@ -245,19 +256,20 @@ class AccountRecordResponse(BaseResponse):
class AccountRecordCollection(CrudCollection[AccountRecordResponse]):
"""Collection of account financial records.
This model represents a paginated list of account records with
sorting and pagination information.
"""
pass
class AccountRecordExchangeResponse(BaseResponse):
"""Response model for currency exchange records.
This model represents a currency exchange transaction, tracking
exchange rates and converted amounts for financial records.
Attributes:
account_record_id (int): ID of the related account record
account_record_uu_id (str): UUID of the related account record
@@ -266,6 +278,7 @@ class AccountRecordExchangeResponse(BaseResponse):
exchange_value (Decimal): Converted amount
exchange_date (datetime): When the exchange was calculated
"""
account_record_id: int
account_record_uu_id: str
exchange_rate: Decimal
@@ -276,15 +289,17 @@ class AccountRecordExchangeResponse(BaseResponse):
class AccountRecordExchangeCollection(CrudCollection[AccountRecordExchangeResponse]):
"""Collection of currency exchange records.
This model represents a paginated list of currency exchange records
with sorting and pagination information.
"""
pass
class AccountRecordsListResponse(BaseModel):
"""Response model for account records list endpoint"""
uu_id: UUID
account_name: str
account_code: str

View File

@@ -6,6 +6,7 @@ from uuid import UUID
class AuthenticationLoginResponse(BaseModel):
"""Response model for authentication login endpoint"""
token: str
refresh_token: str
token_type: str
@@ -15,6 +16,7 @@ class AuthenticationLoginResponse(BaseModel):
class AuthenticationRefreshResponse(BaseModel):
"""Response model for authentication refresh endpoint"""
token: str
refresh_token: str
token_type: str
@@ -23,6 +25,7 @@ class AuthenticationRefreshResponse(BaseModel):
class AuthenticationUserInfoResponse(BaseModel):
"""Response model for authentication user info endpoint"""
user_id: int
username: str
email: str

View File

@@ -3,15 +3,16 @@ from typing import Optional, TypeVar, Generic, List
from datetime import datetime
from uuid import UUID
T = TypeVar('T')
T = TypeVar("T")
class BaseResponse(BaseModel):
"""Base response model that all response models inherit from.
This model provides common fields that are present in all database records,
including tracking information (created/updated timestamps), user actions
(created by, updated by, confirmed by), and record status (active, deleted).
Attributes:
uu_id (str): Unique identifier for the record, typically a UUID
created_at (datetime): Timestamp when the record was created
@@ -27,6 +28,7 @@ class BaseResponse(BaseModel):
is_notification_send (Optional[bool]): Whether notifications have been sent for this record
is_email_send (Optional[bool]): Whether emails have been sent for this record
"""
uu_id: str
created_at: datetime
updated_at: Optional[datetime]
@@ -43,23 +45,24 @@ class BaseResponse(BaseModel):
class Config:
"""Pydantic configuration for the base response model.
Attributes:
from_attributes (bool): Enables ORM mode for SQLAlchemy integration
"""
from_attributes = True
class CrudCollection(BaseModel, Generic[T]):
"""Base collection model for paginated responses.
This model is used to return collections of items with pagination information.
It is generic over the type of items in the collection, allowing it to be
used with any response model.
Type Parameters:
T: The type of items in the collection
Attributes:
page (int): Current page number, 1-based indexing
size (int): Number of items per page
@@ -67,13 +70,13 @@ class CrudCollection(BaseModel, Generic[T]):
order_field (str): Field used for sorting the collection
order_type (str): Sort direction ('asc' or 'desc')
items (List[T]): List of items in the current page
Example:
```python
class UserResponse(BaseResponse):
name: str
email: str
users = CrudCollection[UserResponse](
page=1,
size=10,
@@ -84,6 +87,7 @@ class CrudCollection(BaseModel, Generic[T]):
)
```
"""
page: int = 1
size: int = 10
total: int = 0
@@ -93,8 +97,9 @@ class CrudCollection(BaseModel, Generic[T]):
class Config:
"""Pydantic configuration for the collection model.
Attributes:
from_attributes (bool): Enables ORM mode for SQLAlchemy integration
"""
from_attributes = True

View File

@@ -8,6 +8,7 @@ from .base_responses import BaseResponse, CrudCollection
class DecisionBookBudgetBooksResponse(BaseResponse):
"""Response model for decision book budget books"""
country: str
branch_type: int = 0
company_id: int
@@ -18,13 +19,17 @@ class DecisionBookBudgetBooksResponse(BaseResponse):
build_decision_book_uu_id: Optional[str]
class DecisionBookBudgetBooksCollection(CrudCollection[DecisionBookBudgetBooksResponse]):
class DecisionBookBudgetBooksCollection(
CrudCollection[DecisionBookBudgetBooksResponse]
):
"""Collection of decision book budget books"""
pass
class DecisionBookBudgetCodesResponse(BaseResponse):
"""Response model for decision book budget codes"""
budget_code: str
comment_line: str
budget_type: str
@@ -37,13 +42,17 @@ class DecisionBookBudgetCodesResponse(BaseResponse):
customer_uu_id: str
class DecisionBookBudgetCodesCollection(CrudCollection[DecisionBookBudgetCodesResponse]):
class DecisionBookBudgetCodesCollection(
CrudCollection[DecisionBookBudgetCodesResponse]
):
"""Collection of decision book budget codes"""
pass
class DecisionBookBudgetMasterResponse(BaseResponse):
"""Response model for decision book budget master"""
budget_type: str
currency: str = "TRY"
total_budget: Decimal
@@ -55,13 +64,17 @@ class DecisionBookBudgetMasterResponse(BaseResponse):
department_uu_id: Optional[str]
class DecisionBookBudgetMasterCollection(CrudCollection[DecisionBookBudgetMasterResponse]):
class DecisionBookBudgetMasterCollection(
CrudCollection[DecisionBookBudgetMasterResponse]
):
"""Collection of decision book budget masters"""
pass
class DecisionBookBudgetsResponse(BaseResponse):
"""Response model for decision book budgets"""
process_date: datetime
budget_codes_id: int
total_budget: Decimal
@@ -73,4 +86,5 @@ class DecisionBookBudgetsResponse(BaseResponse):
class DecisionBookBudgetsCollection(CrudCollection[DecisionBookBudgetsResponse]):
"""Collection of decision book budgets"""
pass

View File

@@ -8,6 +8,7 @@ from .base_responses import BaseResponse, CrudCollection
class BuildAreaListResponse(BaseResponse):
"""Response model for building area list endpoint"""
uu_id: UUID
build_id: int
build_uu_id: str
@@ -20,11 +21,13 @@ class BuildAreaListResponse(BaseResponse):
class BuildAreaListCollection(CrudCollection[BuildAreaListResponse]):
"""Collection of building area list"""
pass
class BuildSitesListResponse(BaseResponse):
"""Response model for building sites list endpoint"""
uu_id: UUID
address_id: int
site_name: str
@@ -36,11 +39,13 @@ class BuildSitesListResponse(BaseResponse):
class BuildSitesListCollection(CrudCollection[BuildSitesListResponse]):
"""Collection of building sites list"""
pass
class BuildTypesListResponse(BaseResponse):
"""Response model for building types list endpoint"""
uu_id: UUID
type_name: str
type_value: str
@@ -51,11 +56,13 @@ class BuildTypesListResponse(BaseResponse):
class BuildTypesListCollection(CrudCollection[BuildTypesListResponse]):
"""Collection of building types list"""
pass
class BuildTypesResponse(BaseResponse):
"""Response model for building types"""
function_code: str
type_code: str
lang: str = "TR"
@@ -63,11 +70,13 @@ class BuildTypesResponse(BaseResponse):
class BuildTypesCollection(CrudCollection[BuildTypesResponse]):
"""Collection of building types"""
pass
class Part2EmployeeResponse(BaseResponse):
"""Response model for part to employee mapping"""
build_id: int
part_id: int
employee_id: int
@@ -75,11 +84,13 @@ class Part2EmployeeResponse(BaseResponse):
class Part2EmployeeCollection(CrudCollection[Part2EmployeeResponse]):
"""Collection of part to employee mappings"""
pass
class RelationshipEmployee2BuildResponse(BaseResponse):
"""Response model for employee to build relationship"""
company_id: int
employee_id: int
member_id: int
@@ -87,13 +98,17 @@ class RelationshipEmployee2BuildResponse(BaseResponse):
show_only: bool = False
class RelationshipEmployee2BuildCollection(CrudCollection[RelationshipEmployee2BuildResponse]):
class RelationshipEmployee2BuildCollection(
CrudCollection[RelationshipEmployee2BuildResponse]
):
"""Collection of employee to build relationships"""
pass
class BuildResponse(BaseResponse):
"""Response model for buildings"""
gov_address_code: str = ""
build_name: str
build_no: str
@@ -120,11 +135,13 @@ class BuildResponse(BaseResponse):
class BuildCollection(CrudCollection[BuildResponse]):
"""Collection of buildings"""
pass
class BuildPartsResponse(BaseResponse):
"""Response model for building parts"""
address_gov_code: str
part_no: int = 0
part_level: int = 0
@@ -144,11 +161,13 @@ class BuildPartsResponse(BaseResponse):
class BuildPartsCollection(CrudCollection[BuildPartsResponse]):
"""Collection of building parts"""
pass
class BuildLivingSpaceResponse(BaseResponse):
"""Response model for building living space"""
fix_value: Decimal = Decimal("0")
fix_percent: Decimal = Decimal("0")
agreement_no: str = ""
@@ -164,11 +183,13 @@ class BuildLivingSpaceResponse(BaseResponse):
class BuildLivingSpaceCollection(CrudCollection[BuildLivingSpaceResponse]):
"""Collection of building living spaces"""
pass
class BuildManagementResponse(BaseResponse):
"""Response model for building management"""
discounted_percentage: Decimal = Decimal("0.00")
discounted_price: Decimal = Decimal("0.00")
calculated_price: Decimal = Decimal("0.00")
@@ -182,11 +203,13 @@ class BuildManagementResponse(BaseResponse):
class BuildManagementCollection(CrudCollection[BuildManagementResponse]):
"""Collection of building management records"""
pass
class BuildAreaResponse(BaseResponse):
"""Response model for building area"""
area_name: str = ""
area_code: str = ""
area_type: str = "GREEN"
@@ -203,11 +226,13 @@ class BuildAreaResponse(BaseResponse):
class BuildAreaCollection(CrudCollection[BuildAreaResponse]):
"""Collection of building areas"""
pass
class BuildSitesResponse(BaseResponse):
"""Response model for building sites"""
site_name: str
site_no: str
address_id: int
@@ -216,11 +241,13 @@ class BuildSitesResponse(BaseResponse):
class BuildSitesCollection(CrudCollection[BuildSitesResponse]):
"""Collection of building sites"""
pass
class BuildCompaniesProvidingResponse(BaseResponse):
"""Response model for building companies providing services"""
build_id: int
build_uu_id: Optional[str]
company_id: int
@@ -230,13 +257,17 @@ class BuildCompaniesProvidingResponse(BaseResponse):
contract_id: Optional[int]
class BuildCompaniesProvidingCollection(CrudCollection[BuildCompaniesProvidingResponse]):
class BuildCompaniesProvidingCollection(
CrudCollection[BuildCompaniesProvidingResponse]
):
"""Collection of building companies providing services"""
pass
class BuildPersonProvidingResponse(BaseResponse):
"""Response model for building person providing services"""
build_id: int
build_uu_id: Optional[str]
people_id: int
@@ -248,4 +279,5 @@ class BuildPersonProvidingResponse(BaseResponse):
class BuildPersonProvidingCollection(CrudCollection[BuildPersonProvidingResponse]):
"""Collection of building person providing services"""
pass

View File

@@ -6,6 +6,7 @@ from uuid import UUID
class CompanyListResponse(BaseModel):
"""Response model for company list endpoint"""
uu_id: UUID
company_name: str
company_code: str
@@ -19,6 +20,7 @@ class CompanyListResponse(BaseModel):
class CompanyDepartmentListResponse(BaseModel):
"""Response model for company department list endpoint"""
uu_id: UUID
department_name: str
department_code: str
@@ -31,6 +33,7 @@ class CompanyDepartmentListResponse(BaseModel):
class CompanyDutyListResponse(BaseModel):
"""Response model for company duty list endpoint"""
uu_id: UUID
duty_name: str
duty_code: str
@@ -43,6 +46,7 @@ class CompanyDutyListResponse(BaseModel):
class CompanyEmployeeListResponse(BaseModel):
"""Response model for company employee list endpoint"""
uu_id: UUID
employee_id: int
employee_uu_id: str

View File

@@ -8,6 +8,7 @@ from .base_responses import BaseResponse, CrudCollection
class BuildDecisionBookResponse(BaseResponse):
"""Response model for building decision book"""
decision_book_pdf_path: Optional[str] = ""
resp_company_fix_wage: float = 0
contact_agreement_path: Optional[str] = ""
@@ -18,11 +19,13 @@ class BuildDecisionBookResponse(BaseResponse):
class BuildDecisionBookCollection(CrudCollection[BuildDecisionBookResponse]):
"""Collection of building decision books"""
pass
class BuildDecisionBookInvitationsResponse(BaseResponse):
"""Response model for building decision book invitations"""
build_id: int
build_uu_id: Optional[str]
decision_book_id: int
@@ -36,13 +39,17 @@ class BuildDecisionBookInvitationsResponse(BaseResponse):
planned_date_expires: datetime
class BuildDecisionBookInvitationsCollection(CrudCollection[BuildDecisionBookInvitationsResponse]):
class BuildDecisionBookInvitationsCollection(
CrudCollection[BuildDecisionBookInvitationsResponse]
):
"""Collection of building decision book invitations"""
pass
class BuildDecisionBookPersonResponse(BaseResponse):
"""Response model for building decision book person"""
dues_percent_discount: int = 0
dues_fix_discount: Decimal = Decimal("0")
dues_discount_approval_date: datetime
@@ -61,13 +68,17 @@ class BuildDecisionBookPersonResponse(BaseResponse):
person_id: int
class BuildDecisionBookPersonCollection(CrudCollection[BuildDecisionBookPersonResponse]):
class BuildDecisionBookPersonCollection(
CrudCollection[BuildDecisionBookPersonResponse]
):
"""Collection of building decision book persons"""
pass
class BuildDecisionBookPersonOccupantsResponse(BaseResponse):
"""Response model for building decision book person occupants"""
build_decision_book_person_id: int
build_decision_book_person_uu_id: Optional[str]
invite_id: Optional[int]
@@ -76,13 +87,17 @@ class BuildDecisionBookPersonOccupantsResponse(BaseResponse):
occupant_type_uu_id: Optional[str]
class BuildDecisionBookPersonOccupantsCollection(CrudCollection[BuildDecisionBookPersonOccupantsResponse]):
class BuildDecisionBookPersonOccupantsCollection(
CrudCollection[BuildDecisionBookPersonOccupantsResponse]
):
"""Collection of building decision book person occupants"""
pass
class BuildDecisionBookItemsResponse(BaseResponse):
"""Response model for building decision book items"""
item_order: int
item_comment: str
item_objection: Optional[str]
@@ -97,11 +112,13 @@ class BuildDecisionBookItemsResponse(BaseResponse):
class BuildDecisionBookItemsCollection(CrudCollection[BuildDecisionBookItemsResponse]):
"""Collection of building decision book items"""
pass
class BuildDecisionBookItemsUnapprovedResponse(BaseResponse):
"""Response model for building decision book items unapproved"""
item_objection: str
item_order: int
decision_book_item_id: int
@@ -112,13 +129,17 @@ class BuildDecisionBookItemsUnapprovedResponse(BaseResponse):
build_decision_book_item_uu_id: Optional[str]
class BuildDecisionBookItemsUnapprovedCollection(CrudCollection[BuildDecisionBookItemsUnapprovedResponse]):
class BuildDecisionBookItemsUnapprovedCollection(
CrudCollection[BuildDecisionBookItemsUnapprovedResponse]
):
"""Collection of building decision book items unapproved"""
pass
class BuildDecisionBookPaymentsResponse(BaseResponse):
"""Response model for building decision book payments"""
payment_plan_time_periods: str
process_date: datetime
payment_amount: Decimal
@@ -138,13 +159,17 @@ class BuildDecisionBookPaymentsResponse(BaseResponse):
account_records_uu_id: Optional[str]
class BuildDecisionBookPaymentsCollection(CrudCollection[BuildDecisionBookPaymentsResponse]):
class BuildDecisionBookPaymentsCollection(
CrudCollection[BuildDecisionBookPaymentsResponse]
):
"""Collection of building decision book payments"""
pass
class BuildDecisionBookLegalResponse(BaseResponse):
"""Response model for building decision book legal"""
period_start_date: datetime
lawsuits_decision_number: str
lawsuits_decision_date: datetime
@@ -175,4 +200,5 @@ class BuildDecisionBookLegalResponse(BaseResponse):
class BuildDecisionBookLegalCollection(CrudCollection[BuildDecisionBookLegalResponse]):
"""Collection of building decision book legal records"""
pass