import {
  pgTable,
  uuid,
  text,
  boolean,
  doublePrecision,
  timestamp,
  index,
} from "drizzle-orm/pg-core";

/**
 * Feuerwehren. `lat/lng` werden aus der Adresse geokodiert (Geo-Workstream).
 * `wehrfuehrer` bewusst ASCII (keine Umlaute in JS-Property/DB-Spalte).
 */
export const brigades = pgTable(
  "brigades",
  {
    id: uuid("id").primaryKey().defaultRandom(),
    name: text("name").notNull(),
    art: text("art").notNull().default("FF"),
    strasse: text("strasse"),
    plz: text("plz"),
    ort: text("ort"),
    bundesland: text("bundesland").notNull().default("Niederösterreich"),
    lat: doublePrecision("lat"),
    lng: doublePrecision("lng"),
    geocodeQuery: text("geocode_query"),
    geocodedAt: timestamp("geocoded_at", { withTimezone: true }),
    geocodeStatus: text("geocode_status"),
    funkrufnameSchema: text("funkrufname_schema"),
    wehrfuehrer: text("wehrfuehrer"),
    telefon: text("telefon"),
    email: text("email"),
    aktiv: boolean("aktiv").notNull().default(true),
    erstelltAm: timestamp("erstellt_am", { withTimezone: true })
      .notNull()
      .defaultNow(),
  },
  (t) => ({
    latlngIdx: index("brigades_latlng_idx").on(t.lat, t.lng),
  }),
);
