23 lines
905 B
Python
23 lines
905 B
Python
from typing import List
|
|
from datetime import datetime, timezone
|
|
from sqlalchemy.orm import relationship, MappedColumn, Mapped
|
|
from sqlalchemy import Column, String, DateTime, UUID, Text, JSON
|
|
from cognitive_architecture.infrastructure.databases.relational import ModelBase
|
|
from .DatasetData import DatasetData
|
|
|
|
class Data(ModelBase):
|
|
__tablename__ = "data"
|
|
|
|
id = Column(UUID, primary_key = True)
|
|
name = Column(String, nullable = True)
|
|
description = Column(Text, nullable = True)
|
|
raw_data_location = Column(String)
|
|
meta_data: Mapped[dict] = MappedColumn(type_ = JSON) # metadata is reserved word
|
|
|
|
created_at = Column(DateTime, default = datetime.now(timezone.utc))
|
|
updated_at = Column(DateTime, onupdate = datetime.now(timezone.utc))
|
|
|
|
datasets: Mapped[List["Dataset"]] = relationship(
|
|
secondary = DatasetData.__tablename__,
|
|
back_populates = "data"
|
|
)
|