- Created a new SQL migration for the sag_salgsvarer table to manage sales and purchase items. - Implemented a new HTML template for the Varekøb & Salg module, including summary cards and tables for sales and purchases. - Added JavaScript functions for loading and rendering order data dynamically. - Introduced a new backend search module for customers, contacts, hardware, and locations with autocomplete functionality. - Developed an email templates API for managing system and customer-specific email templates. - Created multiple migrations for Nextcloud instances, cache, audit logs, email templates, sag comments, hardware locations, and billing methods. - Enhanced the sag module with solutions, order lines, work types, and 2FA support for user authentication.
64 lines
1.4 KiB
Python
64 lines
1.4 KiB
Python
from datetime import datetime
|
|
from typing import Dict, List, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class NextcloudInstanceBase(BaseModel):
|
|
customer_id: int
|
|
base_url: str
|
|
auth_type: str = "basic"
|
|
username: str
|
|
|
|
|
|
class NextcloudInstanceCreate(NextcloudInstanceBase):
|
|
password: str = Field(..., min_length=1)
|
|
|
|
|
|
class NextcloudInstanceUpdate(BaseModel):
|
|
base_url: Optional[str] = None
|
|
auth_type: Optional[str] = None
|
|
username: Optional[str] = None
|
|
password: Optional[str] = None
|
|
is_enabled: Optional[bool] = None
|
|
|
|
|
|
class NextcloudInstance(NextcloudInstanceBase):
|
|
id: int
|
|
is_enabled: bool
|
|
disabled_at: Optional[datetime] = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class NextcloudStatus(BaseModel):
|
|
status: str
|
|
checked_at: datetime
|
|
version: Optional[str] = None
|
|
php: Optional[str] = None
|
|
db: Optional[str] = None
|
|
metrics: Dict[str, Optional[str]] = {}
|
|
|
|
|
|
class NextcloudUserCreate(BaseModel):
|
|
uid: str
|
|
display_name: Optional[str] = None
|
|
email: Optional[str] = None
|
|
groups: List[str] = []
|
|
send_welcome: bool = True
|
|
|
|
|
|
class NextcloudPasswordReset(BaseModel):
|
|
send_email: bool = True
|
|
|
|
|
|
class NextcloudAuditLogEntry(BaseModel):
|
|
id: int
|
|
customer_id: int
|
|
instance_id: Optional[int] = None
|
|
event_type: str
|
|
request_meta: Optional[Dict] = None
|
|
response_meta: Optional[Dict] = None
|
|
actor_user_id: Optional[int] = None
|
|
created_at: datetime
|