# Code generated by sqlc. DO NOT EDIT.
# versions:
#   sqlc v1.29.0
import dataclasses
import datetime
import enum
from typing import Optional


class UserPerm(str, enum.Enum):
    DEFAULT = "default"
    INTERNAL = "internal"
    ADMIN = "admin"


@dataclasses.dataclass()
class Benchmark:
    id: int
    owner_id: int
    name: str
    description: Optional[str]
    created_at: datetime.datetime
    updated_at: datetime.datetime


@dataclasses.dataclass()
class BenchmarkJob:
    id: int
    job_id: str
    owner_id: int
    benchmark_id: int
    project_id: int
    status: Optional[str]
    progress: Optional[int]
    results: Optional[str]
    score: Optional[float]
    celery_id: Optional[str]
    created_at: datetime.datetime
    updated_at: datetime.datetime


@dataclasses.dataclass()
class Project:
    id: int
    owner_id: int
    name: str
    description: Optional[str]
    configuration: Optional[str]
    created_at: datetime.datetime
    updated_at: datetime.datetime


@dataclasses.dataclass()
class ReleasedBenchmark:
    id: int
    owner_id: int
    name: str
    tag: str
    description: Optional[str]
    created_at: datetime.datetime


@dataclasses.dataclass()
class ReleasedProject:
    id: int
    owner_id: int
    name: str
    tag: str
    description: Optional[str]
    configuration: Optional[str]
    created_at: datetime.datetime


@dataclasses.dataclass()
class ReleasedTask:
    id: int
    benchmark_id: int
    name: str
    tag: str
    category: Optional[str]
    question: Optional[str]
    data: Optional[str]
    is_public: Optional[bool]
    created_at: datetime.datetime


@dataclasses.dataclass()
class Task:
    id: int
    benchmark_id: int
    name: str
    category: Optional[str]
    question: Optional[str]
    data: Optional[str]
    is_public: Optional[bool]
    created_at: datetime.datetime
    updated_at: datetime.datetime


@dataclasses.dataclass()
class User:
    id: int
    username: str
    email: str
    hashed_password: str
    permission: UserPerm
    is_email_verified: bool
    password_changed_at: datetime.datetime
    created_at: datetime.datetime
    updated_at: datetime.datetime
