# src/clickorm_ch/types.py

class CHType:
    pass

class Int8(CHType):  ...
class Int16(CHType): ...
class Int32(CHType): ...
class Int64(CHType): ...
class UInt8(CHType):  ...
class UInt16(CHType): ...
class UInt32(CHType): ...
class UInt64(CHType): ...

class Float32(CHType): ...
class Float64(CHType): ...

class Decimal(CHType):
    def __init__(self, precision: int, scale: int):
        self.precision = precision
        self.scale = scale

class String(CHType):      ...
class FixedString(CHType):
    def __init__(self, n: int): self.n = n
class UUID(CHType):        ...
class Bool(CHType):        ...

class Date(CHType):        ...
class Date32(CHType):      ...
class DateTime(CHType):    ...
class DateTime64(CHType):
    def __init__(self, precision: int = 3):
        self.precision = precision

class Nullable(CHType):
    def __init__(self, inner: CHType): self.inner = inner

class Array(CHType):
    def __init__(self, inner: CHType): self.inner = inner

class LowCardinality(CHType):
    def __init__(self, inner: CHType): self.inner = inner
