Schema Changes
This commit is contained in:
@@ -14,67 +14,67 @@ import { authUsers } from "./auth_users"
|
||||
export const authProfiles = pgTable("auth_profiles", {
|
||||
id: uuid("id").primaryKey().defaultRandom(),
|
||||
|
||||
userId: uuid("user_id").references(() => authUsers.id),
|
||||
user_id: uuid("user_id").references(() => authUsers.id),
|
||||
|
||||
tenantId: bigint("tenant_id", { mode: "number" }).notNull(),
|
||||
tenant_id: bigint("tenant_id", { mode: "number" }).notNull(),
|
||||
|
||||
createdAt: timestamp("created_at", { withTimezone: true })
|
||||
created_at: timestamp("created_at", { withTimezone: true })
|
||||
.notNull()
|
||||
.defaultNow(),
|
||||
|
||||
firstName: text("first_name").notNull(),
|
||||
lastName: text("last_name").notNull(),
|
||||
first_name: text("first_name").notNull(),
|
||||
last_name: text("last_name").notNull(),
|
||||
|
||||
fullName: text("full_name").generatedAlwaysAs(
|
||||
full_name: text("full_name").generatedAlwaysAs(
|
||||
`((first_name || ' ') || last_name)`
|
||||
),
|
||||
|
||||
mobileTel: text("mobile_tel"),
|
||||
fixedTel: text("fixed_tel"),
|
||||
mobile_tel: text("mobile_tel"),
|
||||
fixed_tel: text("fixed_tel"),
|
||||
salutation: text("salutation"),
|
||||
employeeNumber: text("employee_number"),
|
||||
employee_number: text("employee_number"),
|
||||
|
||||
weeklyWorkingHours: doublePrecision("weekly_working_hours").default(0),
|
||||
annualPaidLeaveDays: bigint("annual_paid_leave_days", { mode: "number" }),
|
||||
weekly_working_hours: doublePrecision("weekly_working_hours").default(0),
|
||||
annual_paid_leave_days: bigint("annual_paid_leave_days", { mode: "number" }),
|
||||
|
||||
weeklyRegularWorkingHours: jsonb("weekly_regular_working_hours").default("{}"),
|
||||
weekly_regular_working_hours: jsonb("weekly_regular_working_hours").default("{}"),
|
||||
|
||||
clothingSizeTop: text("clothing_size_top"),
|
||||
clothingSizeBottom: text("clothing_size_bottom"),
|
||||
clothingSizeShoe: text("clothing_size_shoe"),
|
||||
clothing_size_top: text("clothing_size_top"),
|
||||
clothing_size_bottom: text("clothing_size_bottom"),
|
||||
clothing_size_shoe: text("clothing_size_shoe"),
|
||||
|
||||
emailSignature: text("email_signature").default("<p>Mit freundlichen Grüßen</p>"),
|
||||
email_signature: text("email_signature").default("<p>Mit freundlichen Grüßen</p>"),
|
||||
|
||||
birthday: date("birthday"),
|
||||
entryDate: date("entry_date").defaultNow(),
|
||||
entry_date: date("entry_date").defaultNow(),
|
||||
|
||||
automaticHourCorrections: jsonb("automatic_hour_corrections").default("[]"),
|
||||
automatic_hour_corrections: jsonb("automatic_hour_corrections").default("[]"),
|
||||
|
||||
recreationDaysCompensation: boolean("recreation_days_compensation")
|
||||
recreation_days_compensation: boolean("recreation_days_compensation")
|
||||
.notNull()
|
||||
.default(true),
|
||||
|
||||
customerForPortal: bigint("customer_for_portal", { mode: "number" }),
|
||||
customer_for_portal: bigint("customer_for_portal", { mode: "number" }),
|
||||
|
||||
pinnedOnNavigation: jsonb("pinned_on_navigation").notNull().default("[]"),
|
||||
pinned_on_navigation: jsonb("pinned_on_navigation").notNull().default("[]"),
|
||||
|
||||
email: text("email"),
|
||||
tokenId: text("token_id"),
|
||||
token_id: text("token_id"),
|
||||
|
||||
weeklyWorkingDays: doublePrecision("weekly_working_days"),
|
||||
weekly_working_days: doublePrecision("weekly_working_days"),
|
||||
|
||||
oldProfileId: uuid("old_profile_id"),
|
||||
tempConfig: jsonb("temp_config"),
|
||||
old_profile_id: uuid("old_profile_id"),
|
||||
temp_config: jsonb("temp_config"),
|
||||
|
||||
stateCode: text("state_code").default("DE-NI"),
|
||||
state_code: text("state_code").default("DE-NI"),
|
||||
|
||||
contractType: text("contract_type"),
|
||||
contract_type: text("contract_type"),
|
||||
position: text("position"),
|
||||
qualification: text("qualification"),
|
||||
|
||||
addressStreet: text("address_street"),
|
||||
addressZip: text("address_zip"),
|
||||
addressCity: text("address_city"),
|
||||
address_street: text("address_street"),
|
||||
address_zip: text("address_zip"),
|
||||
address_city: text("address_city"),
|
||||
|
||||
active: boolean("active").notNull().default(true),
|
||||
})
|
||||
|
||||
@@ -4,18 +4,18 @@ import { authRoles } from "./auth_roles"
|
||||
export const authRolePermissions = pgTable(
|
||||
"auth_role_permissions",
|
||||
{
|
||||
createdAt: timestamp("created_at", { withTimezone: true })
|
||||
created_at: timestamp("created_at", { withTimezone: true })
|
||||
.notNull()
|
||||
.defaultNow(),
|
||||
|
||||
roleId: uuid("role_id")
|
||||
role_id: uuid("role_id")
|
||||
.notNull()
|
||||
.references(() => authRoles.id),
|
||||
|
||||
permission: text("permission").notNull(),
|
||||
},
|
||||
(table) => ({
|
||||
primaryKey: [table.roleId, table.permission],
|
||||
primaryKey: [table.role_id, table.permission],
|
||||
})
|
||||
)
|
||||
|
||||
|
||||
@@ -4,15 +4,15 @@ import { authUsers } from "./auth_users"
|
||||
export const authRoles = pgTable("auth_roles", {
|
||||
id: uuid("id").primaryKey().defaultRandom(),
|
||||
|
||||
createdAt: timestamp("created_at", { withTimezone: true })
|
||||
created_at: timestamp("created_at", { withTimezone: true })
|
||||
.notNull()
|
||||
.defaultNow(),
|
||||
|
||||
name: text("name").notNull(),
|
||||
description: text("description"),
|
||||
|
||||
createdBy: uuid("created_by").references(() => authUsers.id),
|
||||
tenantId: bigint("tenant_id", {mode: "number"}),
|
||||
created_by: uuid("created_by").references(() => authUsers.id),
|
||||
tenant_id: bigint("tenant_id", {mode: "number"}),
|
||||
})
|
||||
|
||||
export type AuthRole = typeof authRoles.$inferSelect
|
||||
|
||||
@@ -4,17 +4,17 @@ import { authUsers } from "./auth_users"
|
||||
export const authTenantUsers = pgTable(
|
||||
"auth_tenant_users",
|
||||
{
|
||||
createdAt: timestamp("created_at", { withTimezone: true })
|
||||
created_at: timestamp("created_at", { withTimezone: true })
|
||||
.notNull()
|
||||
.defaultNow(),
|
||||
|
||||
tenantId: bigint("tenant_id", { mode: "number" }).notNull(),
|
||||
userId: uuid("user_id").notNull(),
|
||||
tenant_id: bigint("tenant_id", { mode: "number" }).notNull(),
|
||||
user_id: uuid("user_id").notNull(),
|
||||
|
||||
createdBy: uuid("created_by").references(() => authUsers.id),
|
||||
created_by: uuid("created_by").references(() => authUsers.id),
|
||||
},
|
||||
(table) => ({
|
||||
primaryKey: [table.tenantId, table.userId],
|
||||
primaryKey: [table.tenant_id, table.user_id],
|
||||
})
|
||||
)
|
||||
|
||||
|
||||
@@ -5,24 +5,24 @@ import { authRoles } from "./auth_roles"
|
||||
export const authUserRoles = pgTable(
|
||||
"auth_user_roles",
|
||||
{
|
||||
createdAt: timestamp("created_at", { withTimezone: true })
|
||||
created_at: timestamp("created_at", { withTimezone: true })
|
||||
.notNull()
|
||||
.defaultNow(),
|
||||
|
||||
userId: uuid("user_id")
|
||||
user_id: uuid("user_id")
|
||||
.notNull()
|
||||
.references(() => authUsers.id),
|
||||
|
||||
roleId: uuid("role_id")
|
||||
role_id: uuid("role_id")
|
||||
.notNull()
|
||||
.references(() => authRoles.id),
|
||||
|
||||
tenantId: bigint("tenant_id", { mode: "number" }).notNull(),
|
||||
tenant_id: bigint("tenant_id", { mode: "number" }).notNull(),
|
||||
|
||||
createdBy: uuid("created_by").references(() => authUsers.id),
|
||||
created_by: uuid("created_by").references(() => authUsers.id),
|
||||
},
|
||||
(table) => ({
|
||||
primaryKey: [table.userId, table.roleId, table.tenantId],
|
||||
primaryKey: [table.user_id, table.role_id, table.tenant_id],
|
||||
})
|
||||
)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { pgTable, uuid, text, boolean, timestamp } from "drizzle-orm/pg-core"
|
||||
export const authUsers = pgTable("auth_users", {
|
||||
id: uuid("id").primaryKey().defaultRandom(),
|
||||
|
||||
createdAt: timestamp("created_at", { withTimezone: true })
|
||||
created_at: timestamp("created_at", { withTimezone: true })
|
||||
.notNull()
|
||||
.defaultNow(),
|
||||
|
||||
@@ -11,7 +11,7 @@ export const authUsers = pgTable("auth_users", {
|
||||
passwordHash: text("password_hash").notNull(),
|
||||
|
||||
multiTenant: boolean("multi_tenant").notNull().default(true),
|
||||
mustChangePassword: boolean("must_change_password").notNull().default(false),
|
||||
must_change_password: boolean("must_change_password").notNull().default(false),
|
||||
|
||||
updatedAt: timestamp("updated_at", { withTimezone: true }),
|
||||
|
||||
|
||||
@@ -19,19 +19,19 @@ import { createddocuments } from "./createddocuments"
|
||||
import { bankstatements } from "./bankstatements"
|
||||
import { accounts } from "./accounts" // Falls noch nicht erstellt → bitte melden!
|
||||
|
||||
export const statementAllocations = pgTable("statementallocations", {
|
||||
export const statementallocations = pgTable("statementallocations", {
|
||||
id: uuid("id").primaryKey().defaultRandom(),
|
||||
|
||||
// foreign keys
|
||||
bsId: integer("bs_id")
|
||||
bs_id: integer("bs_id")
|
||||
.notNull()
|
||||
.references(() => bankstatements.id),
|
||||
|
||||
cdId: integer("cd_id").references(() => createddocuments.id),
|
||||
cd_id: integer("cd_id").references(() => createddocuments.id),
|
||||
|
||||
amount: doublePrecision("amount").notNull().default(0),
|
||||
|
||||
iiId: bigint("ii_id", { mode: "number" }).references(
|
||||
ii_id: bigint("ii_id", { mode: "number" }).references(
|
||||
() => incominginvoices.id
|
||||
),
|
||||
|
||||
@@ -64,6 +64,6 @@ export const statementAllocations = pgTable("statementallocations", {
|
||||
archived: boolean("archived").notNull().default(false),
|
||||
})
|
||||
|
||||
export type StatementAllocation = typeof statementAllocations.$inferSelect
|
||||
export type StatementAllocation = typeof statementallocations.$inferSelect
|
||||
export type NewStatementAllocation =
|
||||
typeof statementAllocations.$inferInsert
|
||||
typeof statementallocations.$inferInsert
|
||||
|
||||
Reference in New Issue
Block a user