Merge remote-tracking branch 'origin/24-nov' into development

This commit is contained in:
2025-12-08 10:39:22 -06:00
32 changed files with 2633 additions and 23 deletions

View File

@@ -42,6 +42,7 @@ class Class(Base, TenantScopedMixin, TimestampMixin):
UniqueConstraint(
"tenant_id",
"company_id",
"client_id",
"class_code",
name="ufa_classes_client_id_class_code",
),

View File

@@ -102,6 +102,7 @@ class ClassService:
existing = db.query(Class).filter(
Class.tenant_id == tenant_id,
Class.company_id == company_id,
Class.client_id == data_dict["client_id"],
Class.class_code == data_dict["class_code"]
).first()

View File

@@ -1,10 +1,11 @@
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field
class ExchangeRateBaseDTO(BaseModel):
date: int = Field(..., description="Exchange rate date")
date: datetime = Field(..., description="Exchange rate date")
value: Optional[float] = Field(None, description="Exchange rate value")
local_currency: Optional[str] = Field(None, max_length=7, description="Local currency code")
foreign_currency: Optional[str] = Field(None, max_length=7, description="Foreign currency code")
@@ -17,7 +18,7 @@ class ExchangeRateCreateDTO(ExchangeRateBaseDTO):
class ExchangeRateUpdateDTO(ExchangeRateBaseDTO):
"""Schema for updating an exchange rate"""
date: Optional[int] = Field(None, description="Exchange rate date")
date: Optional[datetime] = Field(None, description="Exchange rate date")
class ExchangeRateResponseDTO(ExchangeRateBaseDTO):

View File

@@ -1,3 +1,4 @@
from datetime import datetime
from decimal import Decimal
from typing import Optional
@@ -28,7 +29,7 @@ class ExchangeRate(Base, TenantScopedMixin, TimestampMixin):
id: Mapped[int] = mapped_column(Integer, primary_key=True)
date: Mapped[int] = mapped_column(DateTime)
date: Mapped[datetime] = mapped_column(DateTime)
value: Mapped[Optional[Decimal]] = mapped_column(DECIMAL(13, 6))
local_currency: Mapped[Optional[str]] = mapped_column(String(7))
foreign_currency: Mapped[Optional[str]] = mapped_column(String(7))

View File

@@ -2,6 +2,7 @@
DTOs for Packages (GBultos).
"""
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field
@@ -33,8 +34,8 @@ class PackageResponseDTO(PackageBaseDTO):
id: int
company_id: int
tenant_id: int
created_at: Optional[str] = None
updated_at: Optional[str] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
class Config:
from_attributes = True

View File

@@ -13,11 +13,11 @@ router = TenantCRUDRoutes(
create_schema=PackageCreateDTO,
update_schema=PackageUpdateDTO,
response_schema=PackageResponseDTO,
prefix="/package",
tags=[],
prefix="/packages",
tags=["a76 / packages"],
resource_name="Package",
id_name="id", # Using numeric ID
enable_list=True, # Enable GET /package with pagination
id_name="package_id",
enable_list=True, # Enable GET /packages with pagination
enable_filters=True, # Enable filtering by key and description_es
default_page_size=50,
max_page_size=100,

View File

@@ -75,8 +75,8 @@ class SealService:
db: Session,
seal_id: int,
tenant_id: int,
company_id: int,
seal_data: dto.SealUpdateDTO,
company_id: int,
) -> Optional[models.Seal]:
"""Update a seal"""
seal = SealService.get_by_id(db, seal_id, tenant_id, company_id)

View File

@@ -46,7 +46,7 @@ router.include_router(parts_router, prefix="/a76", tags=["a76 / parts"])
router.include_router(
permission_rule_oct_router, prefix="/a76", tags=["a76 / permission_rule_oct"]
)
router.include_router(package_router, prefix="/a76", tags=["a76 / package"])
router.include_router(package_router, prefix="/a76")
router.include_router(seal_router, prefix="/a76", tags=["a76 / seal"])
router.include_router(
fraction_rule_octave_router, prefix="/a76", tags=["a76 / fraction_rule_octave"]