export interface TRoomCategories {
    id: number
    name: string
    slug: string
    thumbnail: string
    created_at?: string
    updated_at?: string
}

export interface TRoomValue {
    id: number
    name: string
    slug: string
    room_category_id: number
    thumbnail_2d: string
    thumbnail_3d: string
    asset_2d: string
    asset_3d: string
    created_at?: string
    updated_at?: string
}

export interface TSceneValue extends TRoomValue {
    html: string
    types: TType[]
}

export interface TType {
    id: number
    name: string
    slug: string
    created_at?: string
    updated_at?: string
    pivot: TPivot
}

export interface TPivot {
    room_id: number
    type_id: number
}

export interface TTileCategoryValue{
    id: number
    name: string
    slug: string
    created_at?: string
    updated_at?: string
}

export interface TTileValue{
    id: number
    name: string
    slug: string
    category_id: number
    created_at?: string
    updated_at?: string
    variants: TTileVariant[]
    category: TTileCategoryValue
}

export interface TTileVariant {
    id: number
    name: string
    slug: string
    title_id: number
    category_id: number
    created_at?: string
    updated_at?: string
    variant_attributes: TTileVariantAttribute[]
    types: TTypeTile[]
}

export interface TTileVariantAttribute {
    id: number
    size_id: number
    surface_id: number
    variant_id: number
    image: string
    created_at?: string
    updated_at?: string
    size: TSize
    surface: TSurface
}

export interface TSize {
    id: number
    name: string
    width: number
    length: number
    created_at?: string
    updated_at?: string
}

export interface TSurface {
    id: number
    name: string
    slug: string
    created_at?: string
    updated_at?: string
}

export interface TTypeTile{
    id: number
    name: string
    slug: string
    created_at?: string
    updated_at?: string
    pivot: TPivotTile
}

export interface TPivotTile {
    variant_id: number
    type_id: number
}

export interface TScene {
    id: string
    room: string
    model: string
    slug: string
    cover_image: string
    camera: string
    room_category_id: string
    html?: string
    objects: TObject[]
    camera_x?: string
    camera_y?: string
    camera_z?: string
}

export interface TObject {
    id: string
    surface_name: string
    object_id: string
}
