/* tslint:disable */
/* eslint-disable */


/**
 * AUTO-GENERATED FILE - DO NOT EDIT!
 *
 * This file was automatically generated by pg-to-ts v.4.1.1
 * $ pg-to-ts generate -c postgresql://username:password@localhost:5432/bizmatch -t businesses -t commercials -t users -s public
 *
 */


export type Json = unknown;
export type customerSubType = 'appraiser' | 'attorney' | 'broker' | 'cpa' | 'surveyor' | 'titleCompany';
export type customerType = 'buyer' | 'professional';
export type gender = 'female' | 'male';
export type listingsCategory = 'business' | 'commercialProperty';

// Table businesses
export interface Businesses {
  id: string;
  email: string | null;
  type: string | null;
  title: string | null;
  description: string | null;
  city: string | null;
  state: string | null;
  zipCode: number | null;
  county: string | null;
  price: number | null;
  favoritesForUser: string[] | null;
  draft: boolean | null;
  listingsCategory: listingsCategory | null;
  realEstateIncluded: boolean | null;
  leasedLocation: boolean | null;
  franchiseResale: boolean | null;
  salesRevenue: number | null;
  cashFlow: number | null;
  supportAndTraining: string | null;
  employees: number | null;
  established: number | null;
  internalListingNumber: number | null;
  reasonForSale: string | null;
  brokerLicencing: string | null;
  internals: string | null;
  imageName: string | null;
  created: Date | null;
  updated: Date | null;
  visits: number | null;
  lastVisit: Date | null;
  latitude: number | null;
  longitude: number | null;
}
export interface BusinessesInput {
  id?: string;
  email?: string | null;
  type?: string | null;
  title?: string | null;
  description?: string | null;
  city?: string | null;
  state?: string | null;
  zipCode?: number | null;
  county?: string | null;
  price?: number | null;
  favoritesForUser?: string[] | null;
  draft?: boolean | null;
  listingsCategory?: listingsCategory | null;
  realEstateIncluded?: boolean | null;
  leasedLocation?: boolean | null;
  franchiseResale?: boolean | null;
  salesRevenue?: number | null;
  cashFlow?: number | null;
  supportAndTraining?: string | null;
  employees?: number | null;
  established?: number | null;
  internalListingNumber?: number | null;
  reasonForSale?: string | null;
  brokerLicencing?: string | null;
  internals?: string | null;
  imageName?: string | null;
  created?: Date | null;
  updated?: Date | null;
  visits?: number | null;
  lastVisit?: Date | null;
  latitude?: number | null;
  longitude?: number | null;
}
const businesses = {
  tableName: 'businesses',
  columns: ['id', 'email', 'type', 'title', 'description', 'city', 'state', 'zipCode', 'county', 'price', 'favoritesForUser', 'draft', 'listingsCategory', 'realEstateIncluded', 'leasedLocation', 'franchiseResale', 'salesRevenue', 'cashFlow', 'supportAndTraining', 'employees', 'established', 'internalListingNumber', 'reasonForSale', 'brokerLicencing', 'internals', 'imageName', 'created', 'updated', 'visits', 'lastVisit', 'latitude', 'longitude'],
  requiredForInsert: [],
  primaryKey: 'id',
  foreignKeys: { email: { table: 'users', column: 'email', $type: null as unknown as Users }, },
  $type: null as unknown as Businesses,
  $input: null as unknown as BusinessesInput
} as const;

// Table commercials
export interface Commercials {
  id: string;
  serialId: number;
  email: string | null;
  type: string | null;
  title: string | null;
  description: string | null;
  city: string | null;
  state: string | null;
  price: number | null;
  favoritesForUser: string[] | null;
  listingsCategory: listingsCategory | null;
  hideImage: boolean | null;
  draft: boolean | null;
  zipCode: number | null;
  county: string | null;
  imageOrder: string[] | null;
  imagePath: string | null;
  created: Date | null;
  updated: Date | null;
  visits: number | null;
  lastVisit: Date | null;
  latitude: number | null;
  longitude: number | null;
}
export interface CommercialsInput {
  id?: string;
  serialId?: number;
  email?: string | null;
  type?: string | null;
  title?: string | null;
  description?: string | null;
  city?: string | null;
  state?: string | null;
  price?: number | null;
  favoritesForUser?: string[] | null;
  listingsCategory?: listingsCategory | null;
  hideImage?: boolean | null;
  draft?: boolean | null;
  zipCode?: number | null;
  county?: string | null;
  imageOrder?: string[] | null;
  imagePath?: string | null;
  created?: Date | null;
  updated?: Date | null;
  visits?: number | null;
  lastVisit?: Date | null;
  latitude?: number | null;
  longitude?: number | null;
}
const commercials = {
  tableName: 'commercials',
  columns: ['id', 'serialId', 'email', 'type', 'title', 'description', 'city', 'state', 'price', 'favoritesForUser', 'listingsCategory', 'hideImage', 'draft', 'zipCode', 'county', 'imageOrder', 'imagePath', 'created', 'updated', 'visits', 'lastVisit', 'latitude', 'longitude'],
  requiredForInsert: [],
  primaryKey: 'id',
  foreignKeys: { email: { table: 'users', column: 'email', $type: null as unknown as Users }, },
  $type: null as unknown as Commercials,
  $input: null as unknown as CommercialsInput
} as const;

// Table users
export interface Users {
  id: string;
  firstname: string;
  lastname: string;
  email: string;
  phoneNumber: string | null;
  description: string | null;
  companyName: string | null;
  companyOverview: string | null;
  companyWebsite: string | null;
  companyLocation: string | null;
  offeredServices: string | null;
  areasServed: Json | null;
  hasProfile: boolean | null;
  hasCompanyLogo: boolean | null;
  licensedIn: Json | null;
  gender: gender | null;
  customerType: customerType | null;
  customerSubType: customerSubType | null;
  created: Date | null;
  updated: Date | null;
  latitude: number | null;
  longitude: number | null;
}
export interface UsersInput {
  id?: string;
  firstname: string;
  lastname: string;
  email: string;
  phoneNumber?: string | null;
  description?: string | null;
  companyName?: string | null;
  companyOverview?: string | null;
  companyWebsite?: string | null;
  companyLocation?: string | null;
  offeredServices?: string | null;
  areasServed?: Json | null;
  hasProfile?: boolean | null;
  hasCompanyLogo?: boolean | null;
  licensedIn?: Json | null;
  gender?: gender | null;
  customerType?: customerType | null;
  customerSubType?: customerSubType | null;
  created?: Date | null;
  updated?: Date | null;
  latitude?: number | null;
  longitude?: number | null;
}
const users = {
  tableName: 'users',
  columns: ['id', 'firstname', 'lastname', 'email', 'phoneNumber', 'description', 'companyName', 'companyOverview', 'companyWebsite', 'companyLocation', 'offeredServices', 'areasServed', 'hasProfile', 'hasCompanyLogo', 'licensedIn', 'gender', 'customerType', 'customerSubType', 'created', 'updated', 'latitude', 'longitude'],
  requiredForInsert: ['firstname', 'lastname', 'email'],
  primaryKey: 'id',
  foreignKeys: {},
  $type: null as unknown as Users,
  $input: null as unknown as UsersInput
} as const;


export interface TableTypes {
  businesses: {
  select: Businesses;
  input: BusinessesInput;
  };
  commercials: {
  select: Commercials;
  input: CommercialsInput;
  };
  users: {
  select: Users;
  input: UsersInput;
  };
}

export const tables = {
  businesses,
  commercials,
  users,
}
