/**
 * Entity types and filter types
 * @generated by @constructive-io/graphql-codegen
 * DO NOT EDIT - changes will be overwritten
 */
import type { ApiExposureLevel, ObjectCategory } from './schema-types';
export type ConstructiveInternalTypeAttachment = unknown;
export type ConstructiveInternalTypeHostname = unknown;
export type ConstructiveInternalTypeImage = unknown;
export type ConstructiveInternalTypeUpload = unknown;
export type ConstructiveInternalTypeUrl = unknown;
export interface Function {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    name: string | null;
}
export interface Schema {
    id: string | null;
    databaseId: string | null;
    name: string | null;
    schemaName: string | null;
    label: string | null;
    description: string | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    isPublic: boolean | null;
    apiExposure: ApiExposureLevel | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface Table {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    name: string | null;
    label: string | null;
    description: string | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    useRls: boolean | null;
    timestamps: boolean | null;
    peoplestamps: boolean | null;
    pluralName: string | null;
    singularName: string | null;
    tags: string[] | null;
    partitioned: boolean | null;
    partitionStrategy: string | null;
    partitionKeyNames: string[] | null;
    partitionKeyTypes: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
    inheritsId: string | null;
}
export interface CheckConstraint {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    name: string | null;
    type: string | null;
    fieldIds: string[] | null;
    expr: unknown | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface Field {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    name: string | null;
    label: string | null;
    description: string | null;
    smartTags: unknown | null;
    isRequired: boolean | null;
    apiRequired: boolean | null;
    defaultValue: unknown | null;
    type: unknown | null;
    fieldOrder: number | null;
    regexp: string | null;
    chk: unknown | null;
    chkExpr: unknown | null;
    min: number | null;
    max: number | null;
    tags: string[] | null;
    category: ObjectCategory | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface SpatialRelation {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    fieldId: string | null;
    refTableId: string | null;
    refFieldId: string | null;
    name: string | null;
    operator: string | null;
    paramName: string | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface ForeignKeyConstraint {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    name: string | null;
    description: string | null;
    smartTags: unknown | null;
    type: string | null;
    fieldIds: string[] | null;
    refTableId: string | null;
    refFieldIds: string[] | null;
    deleteAction: string | null;
    updateAction: string | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface FullTextSearch {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    fieldId: string | null;
    fieldIds: string[] | null;
    weights: string[] | null;
    langs: string[] | null;
    langColumn: string | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface Index {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    name: string | null;
    fieldIds: string[] | null;
    includeFieldIds: string[] | null;
    accessMethod: string | null;
    indexParams: unknown | null;
    whereClause: unknown | null;
    isUnique: boolean | null;
    options: unknown | null;
    opClasses: string[] | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface Policy {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    name: string | null;
    granteeName: string | null;
    privilege: string | null;
    permissive: boolean | null;
    disabled: boolean | null;
    policyType: string | null;
    data: unknown | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface PrimaryKeyConstraint {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    name: string | null;
    type: string | null;
    fieldIds: string[] | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface TableGrant {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    privilege: string | null;
    granteeName: string | null;
    fieldIds: string[] | null;
    isGrant: boolean | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface Trigger {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    name: string | null;
    event: string | null;
    functionName: string | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface UniqueConstraint {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    name: string | null;
    description: string | null;
    smartTags: unknown | null;
    type: string | null;
    fieldIds: string[] | null;
    category: ObjectCategory | null;
    tags: string[] | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface View {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    name: string | null;
    tableId: string | null;
    viewType: string | null;
    data: unknown | null;
    filterType: string | null;
    filterData: unknown | null;
    securityInvoker: boolean | null;
    isReadOnly: boolean | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
}
export interface ViewTable {
    id: string | null;
    databaseId: string | null;
    viewId: string | null;
    tableId: string | null;
    joinOrder: number | null;
}
export interface ViewGrant {
    id: string | null;
    databaseId: string | null;
    viewId: string | null;
    granteeName: string | null;
    privilege: string | null;
    withGrantOption: boolean | null;
    isGrant: boolean | null;
}
export interface ViewRule {
    id: string | null;
    databaseId: string | null;
    viewId: string | null;
    name: string | null;
    event: string | null;
    action: string | null;
}
export interface EmbeddingChunk {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    embeddingFieldId: string | null;
    chunksTableId: string | null;
    chunksTableName: string | null;
    contentFieldName: string | null;
    dimensions: number | null;
    metric: string | null;
    chunkSize: number | null;
    chunkOverlap: number | null;
    chunkStrategy: string | null;
    metadataFields: unknown | null;
    searchIndexes: unknown | null;
    enqueueChunkingJob: boolean | null;
    chunkingTaskName: string | null;
    embeddingModel: string | null;
    embeddingProvider: string | null;
    parentFkFieldId: string | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface SchemaGrant {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    granteeName: string | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface DefaultPrivilege {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    objectType: string | null;
    privilege: string | null;
    granteeName: string | null;
    isGrant: boolean | null;
}
export interface Enum {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    name: string | null;
    label: string | null;
    description: string | null;
    values: string[] | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
}
export interface CompositeType {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    name: string | null;
    label: string | null;
    description: string | null;
    attributes: unknown | null;
    smartTags: unknown | null;
    category: ObjectCategory | null;
    tags: string[] | null;
}
export interface ApiSchema {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    apiId: string | null;
}
export interface ApiModule {
    id: string | null;
    databaseId: string | null;
    apiId: string | null;
    name: string | null;
    data: unknown | null;
}
export interface Domain {
    id: string | null;
    databaseId: string | null;
    apiId: string | null;
    siteId: string | null;
    serviceId: string | null;
    subdomain: ConstructiveInternalTypeHostname | null;
    domain: ConstructiveInternalTypeHostname | null;
    labels: unknown | null;
    annotations: unknown | null;
}
export interface SiteMetadatum {
    id: string | null;
    databaseId: string | null;
    siteId: string | null;
    title: string | null;
    description: string | null;
    ogImage: ConstructiveInternalTypeImage | null;
}
export interface SiteModule {
    id: string | null;
    databaseId: string | null;
    siteId: string | null;
    name: string | null;
    data: unknown | null;
}
export interface SiteTheme {
    id: string | null;
    databaseId: string | null;
    siteId: string | null;
    theme: unknown | null;
}
export interface CorsSetting {
    id: string | null;
    databaseId: string | null;
    apiId: string | null;
    allowedOrigins: string[] | null;
}
export interface TriggerFunction {
    id: string | null;
    databaseId: string | null;
    name: string | null;
    code: string | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface Partition {
    id: string | null;
    databaseId: string | null;
    tableId: string | null;
    strategy: string | null;
    partitionKeyId: string | null;
    interval: string | null;
    retention: string | null;
    retentionKeepTable: boolean | null;
    premake: number | null;
    namingPattern: string | null;
    isParented: boolean | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface DatabaseTransfer {
    id: string | null;
    databaseId: string | null;
    targetOwnerId: string | null;
    sourceApproved: boolean | null;
    targetApproved: boolean | null;
    sourceApprovedAt: string | null;
    targetApprovedAt: string | null;
    status: string | null;
    initiatedBy: string | null;
    notes: string | null;
    expiresAt: string | null;
    createdAt: string | null;
    updatedAt: string | null;
    completedAt: string | null;
}
export interface Api {
    id: string | null;
    databaseId: string | null;
    name: string | null;
    dbname: string | null;
    roleName: string | null;
    anonRole: string | null;
    isPublic: boolean | null;
    labels: unknown | null;
    annotations: unknown | null;
}
export interface Site {
    id: string | null;
    databaseId: string | null;
    title: string | null;
    description: string | null;
    ogImage: ConstructiveInternalTypeImage | null;
    favicon: ConstructiveInternalTypeAttachment | null;
    appleTouchIcon: ConstructiveInternalTypeImage | null;
    logo: ConstructiveInternalTypeImage | null;
    dbname: string | null;
    labels: unknown | null;
    annotations: unknown | null;
}
export interface App {
    id: string | null;
    databaseId: string | null;
    siteId: string | null;
    name: string | null;
    appImage: ConstructiveInternalTypeImage | null;
    appStoreLink: ConstructiveInternalTypeUrl | null;
    appStoreId: string | null;
    appIdPrefix: string | null;
    playStoreLink: ConstructiveInternalTypeUrl | null;
}
export interface ApiSetting {
    id: string | null;
    databaseId: string | null;
    apiId: string | null;
    enableAggregates: boolean | null;
    enablePostgis: boolean | null;
    enableSearch: boolean | null;
    enableDirectUploads: boolean | null;
    enablePresignedUploads: boolean | null;
    enableManyToMany: boolean | null;
    enableConnectionFilter: boolean | null;
    enableLtree: boolean | null;
    enableLlm: boolean | null;
    enableRealtime: boolean | null;
    enableBulk: boolean | null;
    enableI18N: boolean | null;
    options: unknown | null;
}
export interface MigrateFile {
    id: string | null;
    databaseId: string | null;
    upload: ConstructiveInternalTypeUpload | null;
}
export interface NodeTypeRegistry {
    name: string | null;
    slug: string | null;
    category: string | null;
    displayName: string | null;
    description: string | null;
    parameterSchema: unknown | null;
    tags: string[] | null;
}
export interface PubkeySetting {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    cryptoNetwork: string | null;
    userField: string | null;
    signUpWithKeyFunctionId: string | null;
    signInRequestChallengeFunctionId: string | null;
    signInRecordFailureFunctionId: string | null;
    signInWithChallengeFunctionId: string | null;
}
export interface Database {
    id: string | null;
    ownerId: string | null;
    schemaHash: string | null;
    name: string | null;
    label: string | null;
    hash: string | null;
    createdAt: string | null;
    updatedAt: string | null;
}
export interface RlsSetting {
    id: string | null;
    databaseId: string | null;
    authenticateSchemaId: string | null;
    roleSchemaId: string | null;
    authenticateFunctionId: string | null;
    authenticateStrictFunctionId: string | null;
    currentRoleFunctionId: string | null;
    currentRoleIdFunctionId: string | null;
    currentUserAgentFunctionId: string | null;
    currentIpAddressFunctionId: string | null;
}
export interface SqlAction {
    id: number | null;
    name: string | null;
    databaseId: string | null;
    deploy: string | null;
    deps: string[] | null;
    payload: unknown | null;
    content: string | null;
    revert: string | null;
    verify: string | null;
    createdAt: string | null;
    action: string | null;
    actionId: string | null;
    actorId: string | null;
}
export interface DatabaseSetting {
    id: string | null;
    databaseId: string | null;
    enableAggregates: boolean | null;
    enablePostgis: boolean | null;
    enableSearch: boolean | null;
    enableDirectUploads: boolean | null;
    enablePresignedUploads: boolean | null;
    enableManyToMany: boolean | null;
    enableConnectionFilter: boolean | null;
    enableLtree: boolean | null;
    enableLlm: boolean | null;
    enableRealtime: boolean | null;
    enableBulk: boolean | null;
    enableI18N: boolean | null;
    options: unknown | null;
    labels: unknown | null;
    annotations: unknown | null;
}
export interface WebauthnSetting {
    id: string | null;
    databaseId: string | null;
    schemaId: string | null;
    credentialsSchemaId: string | null;
    sessionsSchemaId: string | null;
    sessionSecretsSchemaId: string | null;
    credentialsTableId: string | null;
    sessionsTableId: string | null;
    sessionCredentialsTableId: string | null;
    sessionSecretsTableId: string | null;
    userFieldId: string | null;
    rpId: string | null;
    rpName: string | null;
    originAllowlist: string[] | null;
    attestationType: string | null;
    requireUserVerification: boolean | null;
    residentKey: string | null;
    challengeExpirySeconds: string | null;
}
export interface AstMigration {
    id: number | null;
    databaseId: string | null;
    name: string | null;
    requires: string[] | null;
    payload: unknown | null;
    deploys: string | null;
    deploy: unknown | null;
    revert: unknown | null;
    verify: unknown | null;
    createdAt: string | null;
    action: string | null;
    actionId: string | null;
    actorId: string | null;
}
export interface StringFilter {
    isNull?: boolean;
    equalTo?: string;
    notEqualTo?: string;
    distinctFrom?: string;
    notDistinctFrom?: string;
    in?: string[];
    notIn?: string[];
    lessThan?: string;
    lessThanOrEqualTo?: string;
    greaterThan?: string;
    greaterThanOrEqualTo?: string;
    includes?: string;
    notIncludes?: string;
    includesInsensitive?: string;
    notIncludesInsensitive?: string;
    startsWith?: string;
    notStartsWith?: string;
    startsWithInsensitive?: string;
    notStartsWithInsensitive?: string;
    endsWith?: string;
    notEndsWith?: string;
    endsWithInsensitive?: string;
    notEndsWithInsensitive?: string;
    like?: string;
    notLike?: string;
    likeInsensitive?: string;
    notLikeInsensitive?: string;
}
export interface IntFilter {
    isNull?: boolean;
    equalTo?: number;
    notEqualTo?: number;
    distinctFrom?: number;
    notDistinctFrom?: number;
    in?: number[];
    notIn?: number[];
    lessThan?: number;
    lessThanOrEqualTo?: number;
    greaterThan?: number;
    greaterThanOrEqualTo?: number;
}
export interface FloatFilter {
    isNull?: boolean;
    equalTo?: number;
    notEqualTo?: number;
    distinctFrom?: number;
    notDistinctFrom?: number;
    in?: number[];
    notIn?: number[];
    lessThan?: number;
    lessThanOrEqualTo?: number;
    greaterThan?: number;
    greaterThanOrEqualTo?: number;
}
export interface BooleanFilter {
    isNull?: boolean;
    equalTo?: boolean;
    notEqualTo?: boolean;
}
export interface UUIDFilter {
    isNull?: boolean;
    equalTo?: string;
    notEqualTo?: string;
    distinctFrom?: string;
    notDistinctFrom?: string;
    in?: string[];
    notIn?: string[];
}
export interface DatetimeFilter {
    isNull?: boolean;
    equalTo?: string;
    notEqualTo?: string;
    distinctFrom?: string;
    notDistinctFrom?: string;
    in?: string[];
    notIn?: string[];
    lessThan?: string;
    lessThanOrEqualTo?: string;
    greaterThan?: string;
    greaterThanOrEqualTo?: string;
}
export interface DateFilter {
    isNull?: boolean;
    equalTo?: string;
    notEqualTo?: string;
    distinctFrom?: string;
    notDistinctFrom?: string;
    in?: string[];
    notIn?: string[];
    lessThan?: string;
    lessThanOrEqualTo?: string;
    greaterThan?: string;
    greaterThanOrEqualTo?: string;
}
export interface JSONFilter {
    isNull?: boolean;
    equalTo?: Record<string, unknown>;
    notEqualTo?: Record<string, unknown>;
    distinctFrom?: Record<string, unknown>;
    notDistinctFrom?: Record<string, unknown>;
    contains?: unknown;
    containedBy?: unknown;
    containsKey?: string;
    containsAllKeys?: string[];
    containsAnyKeys?: string[];
}
export interface BigIntFilter {
    isNull?: boolean;
    equalTo?: string;
    notEqualTo?: string;
    distinctFrom?: string;
    notDistinctFrom?: string;
    in?: string[];
    notIn?: string[];
    lessThan?: string;
    lessThanOrEqualTo?: string;
    greaterThan?: string;
    greaterThanOrEqualTo?: string;
}
export interface BigFloatFilter {
    isNull?: boolean;
    equalTo?: string;
    notEqualTo?: string;
    distinctFrom?: string;
    notDistinctFrom?: string;
    in?: string[];
    notIn?: string[];
    lessThan?: string;
    lessThanOrEqualTo?: string;
    greaterThan?: string;
    greaterThanOrEqualTo?: string;
}
export interface BitStringFilter {
    isNull?: boolean;
    equalTo?: string;
    notEqualTo?: string;
}
export interface InternetAddressFilter {
    isNull?: boolean;
    equalTo?: string;
    notEqualTo?: string;
    distinctFrom?: string;
    notDistinctFrom?: string;
    in?: string[];
    notIn?: string[];
    lessThan?: string;
    lessThanOrEqualTo?: string;
    greaterThan?: string;
    greaterThanOrEqualTo?: string;
    contains?: string;
    containedBy?: string;
    containsOrContainedBy?: string;
}
export interface FullTextFilter {
    matches?: string;
}
export interface VectorFilter {
    isNull?: boolean;
    equalTo?: number[];
    notEqualTo?: number[];
    distinctFrom?: number[];
    notDistinctFrom?: number[];
}
export interface StringListFilter {
    isNull?: boolean;
    equalTo?: string[];
    notEqualTo?: string[];
    distinctFrom?: string[];
    notDistinctFrom?: string[];
    lessThan?: string[];
    lessThanOrEqualTo?: string[];
    greaterThan?: string[];
    greaterThanOrEqualTo?: string[];
    contains?: string[];
    containedBy?: string[];
    overlaps?: string[];
    anyEqualTo?: string;
    anyNotEqualTo?: string;
    anyLessThan?: string;
    anyLessThanOrEqualTo?: string;
    anyGreaterThan?: string;
    anyGreaterThanOrEqualTo?: string;
}
export interface IntListFilter {
    isNull?: boolean;
    equalTo?: number[];
    notEqualTo?: number[];
    distinctFrom?: number[];
    notDistinctFrom?: number[];
    lessThan?: number[];
    lessThanOrEqualTo?: number[];
    greaterThan?: number[];
    greaterThanOrEqualTo?: number[];
    contains?: number[];
    containedBy?: number[];
    overlaps?: number[];
    anyEqualTo?: number;
    anyNotEqualTo?: number;
    anyLessThan?: number;
    anyLessThanOrEqualTo?: number;
    anyGreaterThan?: number;
    anyGreaterThanOrEqualTo?: number;
}
export interface UUIDListFilter {
    isNull?: boolean;
    equalTo?: string[];
    notEqualTo?: string[];
    distinctFrom?: string[];
    notDistinctFrom?: string[];
    lessThan?: string[];
    lessThanOrEqualTo?: string[];
    greaterThan?: string[];
    greaterThanOrEqualTo?: string[];
    contains?: string[];
    containedBy?: string[];
    overlaps?: string[];
    anyEqualTo?: string;
    anyNotEqualTo?: string;
    anyLessThan?: string;
    anyLessThanOrEqualTo?: string;
    anyGreaterThan?: string;
    anyGreaterThanOrEqualTo?: string;
}
