feat: link end customers directly to companies
All checks were successful
Staging Build / build (push) Successful in 3m37s

This commit is contained in:
DanielS
2026-07-04 15:17:04 +02:00
parent d3bf4b1db9
commit 5f65f890ee
5 changed files with 110 additions and 72 deletions

View File

@@ -30,9 +30,23 @@ export type EndCustomerFormData = {
*/
export async function getEndCustomers(): Promise<EndCustomer[]> {
const supabase = await createClient()
const { data: { user } } = await supabase.auth.getUser()
if (!user) throw new Error('Not authenticated')
const { data: dbUser, error: dbUserError } = await supabase
.from('users')
.select('company_id')
.eq('id', user.id)
.single()
if (dbUserError || !dbUser || !dbUser.company_id) {
return []
}
const { data, error } = await supabase
.from('end_customers')
.select('*')
.eq('partner_id', dbUser.company_id)
.order('company_name', { ascending: true })
if (error) throw error
@@ -66,10 +80,20 @@ export async function createEndCustomer(formData: EndCustomerFormData): Promise<
const { data: { user } } = await supabase.auth.getUser()
if (!user) throw new Error('Not authenticated')
const { data: dbUser, error: dbUserError } = await supabase
.from('users')
.select('company_id')
.eq('id', user.id)
.single()
if (dbUserError || !dbUser || !dbUser.company_id) {
throw new Error('Kein Unternehmen zugewiesen.')
}
const { data, error } = await supabase
.from('end_customers')
.insert([{
partner_id: user.id,
partner_id: dbUser.company_id,
company_name: formData.company_name,
vat_id: formData.vat_id || null,
first_name: formData.first_name || null,
@@ -167,10 +191,18 @@ export async function anonymizeEndCustomer(id: string): Promise<void> {
export async function getPartnerEndCustomers(partnerId: string): Promise<EndCustomer[]> {
const admin = createAdminClient()
const { data: dbUser } = await admin
.from('users')
.select('company_id')
.eq('id', partnerId)
.single()
const targetId = dbUser?.company_id || partnerId
const { data, error } = await admin
.from('end_customers')
.select('*')
.eq('partner_id', partnerId)
.eq('partner_id', targetId)
.order('company_name', { ascending: true })
if (error) throw error