Coverage for dj/models/cube.py: 100%
22 statements
« prev ^ index » next coverage.py v7.2.3, created at 2023-04-17 20:05 -0700
« prev ^ index » next coverage.py v7.2.3, created at 2023-04-17 20:05 -0700
1"""
2Models for cubes.
3"""
5from typing import List, Optional
7from pydantic import Field
8from sqlmodel import SQLModel
10from dj.models.node import AvailabilityState, NodeType
11from dj.typing import UTCDatetime
14class CubeElementMetadata(SQLModel):
15 """
16 Metadata for an element in a cube
17 """
19 id: int
20 current_version: str
21 name: str
24class CubeRevisionMetadata(SQLModel):
25 """
26 Metadata for a cube node
27 """
29 id: int = Field(alias="node_revision_id")
30 node_id: int
31 type: NodeType
32 name: str
33 display_name: str
34 version: str
35 description: str = ""
36 availability: Optional[AvailabilityState] = None
37 cube_elements: List[CubeElementMetadata]
38 updated_at: UTCDatetime
40 class Config: # pylint: disable=missing-class-docstring,too-few-public-methods
41 allow_population_by_field_name = True