Merge remote-tracking branch 'origin/main'
# Conflicts: # docker-compose.yml
This commit is contained in:
@@ -5,7 +5,7 @@ WORKDIR /app
|
|||||||
# --- Install + Build in one stage ---
|
# --- Install + Build in one stage ---
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
# CACHE_BUST: change this value to force a full rebuild (busts Docker layer cache)
|
# CACHE_BUST: change this value to force a full rebuild (busts Docker layer cache)
|
||||||
ARG CACHE_BUST=11
|
ARG CACHE_BUST=12
|
||||||
RUN echo "Cache bust: ${CACHE_BUST}"
|
RUN echo "Cache bust: ${CACHE_BUST}"
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN pnpm install --no-frozen-lockfile
|
RUN pnpm install --no-frozen-lockfile
|
||||||
@@ -17,10 +17,16 @@ ARG NEXT_PUBLIC_SITE_URL=https://myeasycms.de
|
|||||||
ARG NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000
|
ARG NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000
|
||||||
ARG NEXT_PUBLIC_SUPABASE_PUBLIC_KEY
|
ARG NEXT_PUBLIC_SUPABASE_PUBLIC_KEY
|
||||||
ARG NEXT_PUBLIC_DEFAULT_LOCALE=de
|
ARG NEXT_PUBLIC_DEFAULT_LOCALE=de
|
||||||
|
ARG NEXT_PUBLIC_ENABLE_FISCHEREI=true
|
||||||
|
ARG NEXT_PUBLIC_ENABLE_MEETING_PROTOCOLS=true
|
||||||
|
ARG NEXT_PUBLIC_ENABLE_VERBANDSVERWALTUNG=true
|
||||||
ENV NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL}
|
ENV NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL}
|
||||||
ENV NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL}
|
ENV NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL}
|
||||||
ENV NEXT_PUBLIC_SUPABASE_PUBLIC_KEY=${NEXT_PUBLIC_SUPABASE_PUBLIC_KEY}
|
ENV NEXT_PUBLIC_SUPABASE_PUBLIC_KEY=${NEXT_PUBLIC_SUPABASE_PUBLIC_KEY}
|
||||||
ENV NEXT_PUBLIC_DEFAULT_LOCALE=${NEXT_PUBLIC_DEFAULT_LOCALE}
|
ENV NEXT_PUBLIC_DEFAULT_LOCALE=${NEXT_PUBLIC_DEFAULT_LOCALE}
|
||||||
|
ENV NEXT_PUBLIC_ENABLE_FISCHEREI=${NEXT_PUBLIC_ENABLE_FISCHEREI}
|
||||||
|
ENV NEXT_PUBLIC_ENABLE_MEETING_PROTOCOLS=${NEXT_PUBLIC_ENABLE_MEETING_PROTOCOLS}
|
||||||
|
ENV NEXT_PUBLIC_ENABLE_VERBANDSVERWALTUNG=${NEXT_PUBLIC_ENABLE_VERBANDSVERWALTUNG}
|
||||||
RUN pnpm --filter web build
|
RUN pnpm --filter web build
|
||||||
|
|
||||||
# --- Run ---
|
# --- Run ---
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ services:
|
|||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_DB: postgres
|
POSTGRES_DB: postgres
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ['CMD-SHELL', 'pg_isready -U postgres -d postgres']
|
test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 10
|
retries: 10
|
||||||
@@ -49,7 +49,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
PGPASSWORD: ${POSTGRES_PASSWORD}
|
PGPASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
entrypoint: ['/bin/sh', '-c']
|
entrypoint: ["/bin/sh", "-c"]
|
||||||
command:
|
command:
|
||||||
- |
|
- |
|
||||||
echo "🔑 Ensuring role passwords are set (idempotent)..."
|
echo "🔑 Ensuring role passwords are set (idempotent)..."
|
||||||
@@ -63,7 +63,7 @@ services:
|
|||||||
echo "✅ App migrations complete."
|
echo "✅ App migrations complete."
|
||||||
echo ""
|
echo ""
|
||||||
sh /app-seed/dev-bootstrap.sh
|
sh /app-seed/dev-bootstrap.sh
|
||||||
restart: 'no'
|
restart: "no"
|
||||||
|
|
||||||
# =====================================================
|
# =====================================================
|
||||||
# Supabase Auth (GoTrue)
|
# Supabase Auth (GoTrue)
|
||||||
@@ -102,15 +102,7 @@ services:
|
|||||||
GOTRUE_MAILER_URLPATHS_RECOVERY: /auth/v1/verify
|
GOTRUE_MAILER_URLPATHS_RECOVERY: /auth/v1/verify
|
||||||
GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE: /auth/v1/verify
|
GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE: /auth/v1/verify
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:9999/health"]
|
||||||
[
|
|
||||||
'CMD',
|
|
||||||
'wget',
|
|
||||||
'--no-verbose',
|
|
||||||
'--tries=1',
|
|
||||||
'--spider',
|
|
||||||
'http://localhost:9999/health',
|
|
||||||
]
|
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
@@ -131,9 +123,9 @@ services:
|
|||||||
PGRST_DB_SCHEMAS: public,storage,graphql_public
|
PGRST_DB_SCHEMAS: public,storage,graphql_public
|
||||||
PGRST_DB_ANON_ROLE: anon
|
PGRST_DB_ANON_ROLE: anon
|
||||||
PGRST_JWT_SECRET: ${JWT_SECRET}
|
PGRST_JWT_SECRET: ${JWT_SECRET}
|
||||||
PGRST_DB_USE_LEGACY_GUCS: 'false'
|
PGRST_DB_USE_LEGACY_GUCS: "false"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ['CMD-SHELL', 'head -c0 </dev/tcp/localhost/3000 || exit 1']
|
test: ["CMD-SHELL", "head -c0 </dev/tcp/localhost/3000 || exit 1"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
@@ -157,20 +149,20 @@ services:
|
|||||||
DB_USER: supabase_admin
|
DB_USER: supabase_admin
|
||||||
DB_PASSWORD: ${POSTGRES_PASSWORD}
|
DB_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
DB_NAME: postgres
|
DB_NAME: postgres
|
||||||
DB_AFTER_CONNECT_QUERY: 'SET search_path TO _realtime'
|
DB_AFTER_CONNECT_QUERY: "SET search_path TO _realtime"
|
||||||
DB_ENC_KEY: supabaserealtime
|
DB_ENC_KEY: supabaserealtime
|
||||||
API_JWT_SECRET: ${JWT_SECRET}
|
API_JWT_SECRET: ${JWT_SECRET}
|
||||||
SECRET_KEY_BASE: ${SECRET_KEY_BASE:-UpNVntn3cDxHJpq99YMc1T1AQgQpc8kfYTuRgBiYa15BLrx8etQoXz3gZv1/u2oq}
|
SECRET_KEY_BASE: ${SECRET_KEY_BASE:-UpNVntn3cDxHJpq99YMc1T1AQgQpc8kfYTuRgBiYa15BLrx8etQoXz3gZv1/u2oq}
|
||||||
ERL_AFLAGS: '-proto_dist inet_tcp'
|
ERL_AFLAGS: "-proto_dist inet_tcp"
|
||||||
DNS_NODES: "''"
|
DNS_NODES: "''"
|
||||||
RLIMIT_NOFILE: '10000'
|
RLIMIT_NOFILE: "10000"
|
||||||
APP_NAME: realtime
|
APP_NAME: realtime
|
||||||
SEED_SELF_HOST: 'true'
|
SEED_SELF_HOST: "true"
|
||||||
REPLICATION_MODE: RLS
|
REPLICATION_MODE: RLS
|
||||||
REPLICATION_POLL_INTERVAL: 100
|
REPLICATION_POLL_INTERVAL: 100
|
||||||
SECURE_CHANNELS: 'true'
|
SECURE_CHANNELS: "true"
|
||||||
SLOT_NAME: supabase_realtime_rls
|
SLOT_NAME: supabase_realtime_rls
|
||||||
TEMPORARY_SLOT: 'true'
|
TEMPORARY_SLOT: "true"
|
||||||
MAX_RECORD_BYTES: 1048576
|
MAX_RECORD_BYTES: 1048576
|
||||||
|
|
||||||
# =====================================================
|
# =====================================================
|
||||||
@@ -204,11 +196,7 @@ services:
|
|||||||
GLOBAL_S3_BUCKET: stub
|
GLOBAL_S3_BUCKET: stub
|
||||||
IMGPROXY_URL: http://supabase-imgproxy:8080
|
IMGPROXY_URL: http://supabase-imgproxy:8080
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:5000/status || exit 1"]
|
||||||
[
|
|
||||||
'CMD-SHELL',
|
|
||||||
'wget --no-verbose --tries=1 --spider http://localhost:5000/status || exit 1',
|
|
||||||
]
|
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
@@ -221,10 +209,10 @@ services:
|
|||||||
image: darthsim/imgproxy:v3.8.0
|
image: darthsim/imgproxy:v3.8.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
IMGPROXY_BIND: ':8080'
|
IMGPROXY_BIND: ":8080"
|
||||||
IMGPROXY_LOCAL_FILESYSTEM_ROOT: /
|
IMGPROXY_LOCAL_FILESYSTEM_ROOT: /
|
||||||
IMGPROXY_USE_ETAG: 'true'
|
IMGPROXY_USE_ETAG: "true"
|
||||||
IMGPROXY_ENABLE_WEBP_DETECTION: 'true'
|
IMGPROXY_ENABLE_WEBP_DETECTION: "true"
|
||||||
|
|
||||||
# =====================================================
|
# =====================================================
|
||||||
# Supabase pg_meta (DB introspection for Studio)
|
# Supabase pg_meta (DB introspection for Studio)
|
||||||
@@ -264,16 +252,10 @@ services:
|
|||||||
SUPABASE_ANON_KEY: ${SUPABASE_ANON_KEY}
|
SUPABASE_ANON_KEY: ${SUPABASE_ANON_KEY}
|
||||||
SUPABASE_SERVICE_KEY: ${SUPABASE_SERVICE_ROLE_KEY}
|
SUPABASE_SERVICE_KEY: ${SUPABASE_SERVICE_ROLE_KEY}
|
||||||
AUTH_JWT_SECRET: ${JWT_SECRET}
|
AUTH_JWT_SECRET: ${JWT_SECRET}
|
||||||
NEXT_PUBLIC_ENABLE_LOGS: 'true'
|
NEXT_PUBLIC_ENABLE_LOGS: "true"
|
||||||
NEXT_ANALYTICS_BACKEND_PROVIDER: postgres
|
NEXT_ANALYTICS_BACKEND_PROVIDER: postgres
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/api/profile', (r) => r.statusCode === 200 ? process.exit(0) : process.exit(1))"]
|
||||||
[
|
|
||||||
'CMD',
|
|
||||||
'node',
|
|
||||||
'-e',
|
|
||||||
"require('http').get('http://localhost:3000/api/profile', (r) => r.statusCode === 200 ? process.exit(0) : process.exit(1))",
|
|
||||||
]
|
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
@@ -302,7 +284,7 @@ services:
|
|||||||
entrypoint: >
|
entrypoint: >
|
||||||
sh -c "sed 's|\$${SUPABASE_ANON_KEY}|'\"$$SUPABASE_ANON_KEY\"'|g; s|\$${SUPABASE_SERVICE_KEY}|'\"$$SUPABASE_SERVICE_KEY\"'|g' /var/lib/kong/kong.yml.tpl > /tmp/kong.yml && KONG_DECLARATIVE_CONFIG=/tmp/kong.yml /docker-entrypoint.sh kong docker-start"
|
sh -c "sed 's|\$${SUPABASE_ANON_KEY}|'\"$$SUPABASE_ANON_KEY\"'|g; s|\$${SUPABASE_SERVICE_KEY}|'\"$$SUPABASE_SERVICE_KEY\"'|g' /var/lib/kong/kong.yml.tpl > /tmp/kong.yml && KONG_DECLARATIVE_CONFIG=/tmp/kong.yml /docker-entrypoint.sh kong docker-start"
|
||||||
environment:
|
environment:
|
||||||
KONG_DATABASE: 'off'
|
KONG_DATABASE: "off"
|
||||||
KONG_DECLARATIVE_CONFIG: /var/lib/kong/kong.yml
|
KONG_DECLARATIVE_CONFIG: /var/lib/kong/kong.yml
|
||||||
KONG_DNS_ORDER: LAST,A,CNAME
|
KONG_DNS_ORDER: LAST,A,CNAME
|
||||||
KONG_PLUGINS: request-transformer,cors,key-auth,acl,basic-auth
|
KONG_PLUGINS: request-transformer,cors,key-auth,acl,basic-auth
|
||||||
@@ -313,7 +295,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./docker/kong.yml:/var/lib/kong/kong.yml.tpl:ro
|
- ./docker/kong.yml:/var/lib/kong/kong.yml.tpl:ro
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ['CMD', 'kong', 'health']
|
test: ["CMD", "kong", "health"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
@@ -347,12 +329,15 @@ services:
|
|||||||
SUPABASE_DB_WEBHOOK_SECRET: ${DB_WEBHOOK_SECRET:-webhooksecret}
|
SUPABASE_DB_WEBHOOK_SECRET: ${DB_WEBHOOK_SECRET:-webhooksecret}
|
||||||
EMAIL_SENDER: ${EMAIL_SENDER:-noreply@myeasycms.de}
|
EMAIL_SENDER: ${EMAIL_SENDER:-noreply@myeasycms.de}
|
||||||
NEXT_PUBLIC_PRODUCT_NAME: MyEasyCMS
|
NEXT_PUBLIC_PRODUCT_NAME: MyEasyCMS
|
||||||
NEXT_PUBLIC_ENABLE_THEME_TOGGLE: 'true'
|
NEXT_PUBLIC_ENABLE_THEME_TOGGLE: "true"
|
||||||
NEXT_PUBLIC_ENABLE_TEAM_ACCOUNTS: 'true'
|
NEXT_PUBLIC_ENABLE_TEAM_ACCOUNTS: "true"
|
||||||
NEXT_PUBLIC_ENABLE_TEAM_ACCOUNTS_CREATION: 'true'
|
NEXT_PUBLIC_ENABLE_TEAM_ACCOUNTS_CREATION: "true"
|
||||||
NEXT_PUBLIC_ENABLE_TEAM_ACCOUNTS_BILLING: 'false'
|
NEXT_PUBLIC_ENABLE_TEAM_ACCOUNTS_BILLING: "false"
|
||||||
NEXT_PUBLIC_ENABLE_PERSONAL_ACCOUNT_BILLING: 'false'
|
NEXT_PUBLIC_ENABLE_PERSONAL_ACCOUNT_BILLING: "false"
|
||||||
NEXT_PUBLIC_ENABLE_NOTIFICATIONS: 'true'
|
NEXT_PUBLIC_ENABLE_NOTIFICATIONS: "true"
|
||||||
|
NEXT_PUBLIC_ENABLE_FISCHEREI: "true"
|
||||||
|
NEXT_PUBLIC_ENABLE_MEETING_PROTOCOLS: "true"
|
||||||
|
NEXT_PUBLIC_ENABLE_VERBANDSVERWALTUNG: "true"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
supabase-db-data:
|
supabase-db-data:
|
||||||
|
|||||||
@@ -98,18 +98,18 @@ export function createFischereiApi(client: SupabaseClient<Database>) {
|
|||||||
.insert({
|
.insert({
|
||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
name: input.name,
|
name: input.name,
|
||||||
short_name: input.shortName,
|
short_name: input.shortName || null,
|
||||||
water_type: input.waterType,
|
water_type: input.waterType,
|
||||||
description: input.description,
|
description: input.description || null,
|
||||||
surface_area_ha: input.surfaceAreaHa,
|
surface_area_ha: input.surfaceAreaHa,
|
||||||
length_m: input.lengthM,
|
length_m: input.lengthM,
|
||||||
width_m: input.widthM,
|
width_m: input.widthM,
|
||||||
avg_depth_m: input.avgDepthM,
|
avg_depth_m: input.avgDepthM,
|
||||||
max_depth_m: input.maxDepthM,
|
max_depth_m: input.maxDepthM,
|
||||||
outflow: input.outflow,
|
outflow: input.outflow || null,
|
||||||
location: input.location,
|
location: input.location || null,
|
||||||
classification_order: input.classificationOrder,
|
classification_order: input.classificationOrder,
|
||||||
county: input.county,
|
county: input.county || null,
|
||||||
geo_lat: input.geoLat,
|
geo_lat: input.geoLat,
|
||||||
geo_lng: input.geoLng,
|
geo_lng: input.geoLng,
|
||||||
lfv_number: input.lfvNumber,
|
lfv_number: input.lfvNumber,
|
||||||
@@ -298,17 +298,17 @@ export function createFischereiApi(client: SupabaseClient<Database>) {
|
|||||||
.insert({
|
.insert({
|
||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
name: input.name,
|
name: input.name,
|
||||||
name_latin: input.nameLatin,
|
name_latin: input.nameLatin || null,
|
||||||
name_local: input.nameLocal,
|
name_local: input.nameLocal || null,
|
||||||
is_active: input.isActive,
|
is_active: input.isActive,
|
||||||
max_age_years: input.maxAgeYears,
|
max_age_years: input.maxAgeYears,
|
||||||
max_weight_kg: input.maxWeightKg,
|
max_weight_kg: input.maxWeightKg,
|
||||||
max_length_cm: input.maxLengthCm,
|
max_length_cm: input.maxLengthCm,
|
||||||
protected_min_size_cm: input.protectedMinSizeCm,
|
protected_min_size_cm: input.protectedMinSizeCm,
|
||||||
protection_period_start: input.protectionPeriodStart,
|
protection_period_start: input.protectionPeriodStart || null,
|
||||||
protection_period_end: input.protectionPeriodEnd,
|
protection_period_end: input.protectionPeriodEnd || null,
|
||||||
spawning_season_start: input.spawningSeasonStart,
|
spawning_season_start: input.spawningSeasonStart || null,
|
||||||
spawning_season_end: input.spawningSeasonEnd,
|
spawning_season_end: input.spawningSeasonEnd || null,
|
||||||
has_special_spawning_season: input.hasSpecialSpawningSeason,
|
has_special_spawning_season: input.hasSpecialSpawningSeason,
|
||||||
k_factor_avg: input.kFactorAvg,
|
k_factor_avg: input.kFactorAvg,
|
||||||
k_factor_min: input.kFactorMin,
|
k_factor_min: input.kFactorMin,
|
||||||
@@ -408,8 +408,8 @@ export function createFischereiApi(client: SupabaseClient<Database>) {
|
|||||||
water_id: input.waterId,
|
water_id: input.waterId,
|
||||||
species_id: input.speciesId,
|
species_id: input.speciesId,
|
||||||
min_size_cm: input.minSizeCm,
|
min_size_cm: input.minSizeCm,
|
||||||
protection_period_start: input.protectionPeriodStart,
|
protection_period_start: input.protectionPeriodStart || null,
|
||||||
protection_period_end: input.protectionPeriodEnd,
|
protection_period_end: input.protectionPeriodEnd || null,
|
||||||
max_catch_per_day: input.maxCatchPerDay,
|
max_catch_per_day: input.maxCatchPerDay,
|
||||||
max_catch_per_year: input.maxCatchPerYear,
|
max_catch_per_year: input.maxCatchPerYear,
|
||||||
},
|
},
|
||||||
@@ -480,13 +480,13 @@ export function createFischereiApi(client: SupabaseClient<Database>) {
|
|||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
water_id: input.waterId,
|
water_id: input.waterId,
|
||||||
species_id: input.speciesId,
|
species_id: input.speciesId,
|
||||||
stocking_date: input.stockingDate,
|
stocking_date: input.stockingDate || null,
|
||||||
quantity: input.quantity,
|
quantity: input.quantity,
|
||||||
weight_kg: input.weightKg,
|
weight_kg: input.weightKg,
|
||||||
age_class: input.ageClass,
|
age_class: input.ageClass,
|
||||||
cost_euros: input.costEuros,
|
cost_euros: input.costEuros,
|
||||||
supplier_id: input.supplierId,
|
supplier_id: input.supplierId,
|
||||||
remarks: input.remarks,
|
remarks: input.remarks || null,
|
||||||
created_by: userId,
|
created_by: userId,
|
||||||
updated_by: userId,
|
updated_by: userId,
|
||||||
})
|
})
|
||||||
@@ -589,11 +589,11 @@ export function createFischereiApi(client: SupabaseClient<Database>) {
|
|||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
water_id: input.waterId,
|
water_id: input.waterId,
|
||||||
lessor_name: input.lessorName,
|
lessor_name: input.lessorName,
|
||||||
lessor_address: input.lessorAddress,
|
lessor_address: input.lessorAddress || null,
|
||||||
lessor_phone: input.lessorPhone,
|
lessor_phone: input.lessorPhone || null,
|
||||||
lessor_email: input.lessorEmail,
|
lessor_email: input.lessorEmail || null,
|
||||||
start_date: input.startDate,
|
start_date: input.startDate || null,
|
||||||
end_date: input.endDate,
|
end_date: input.endDate || null,
|
||||||
duration_years: input.durationYears,
|
duration_years: input.durationYears,
|
||||||
initial_amount: input.initialAmount,
|
initial_amount: input.initialAmount,
|
||||||
fixed_annual_increase: input.fixedAnnualIncrease,
|
fixed_annual_increase: input.fixedAnnualIncrease,
|
||||||
@@ -728,14 +728,14 @@ export function createFischereiApi(client: SupabaseClient<Database>) {
|
|||||||
member_id: input.memberId,
|
member_id: input.memberId,
|
||||||
year: input.year,
|
year: input.year,
|
||||||
member_name: input.memberName,
|
member_name: input.memberName,
|
||||||
member_birth_date: input.memberBirthDate,
|
member_birth_date: input.memberBirthDate || null,
|
||||||
fishing_days_count: input.fishingDaysCount,
|
fishing_days_count: input.fishingDaysCount,
|
||||||
card_numbers: input.cardNumbers,
|
card_numbers: input.cardNumbers,
|
||||||
is_fly_fisher: input.isFlyFisher,
|
is_fly_fisher: input.isFlyFisher,
|
||||||
is_hejfish: input.isHejfish,
|
is_hejfish: input.isHejfish,
|
||||||
is_empty: input.isEmpty,
|
is_empty: input.isEmpty,
|
||||||
not_fished: input.notFished,
|
not_fished: input.notFished,
|
||||||
remarks: input.remarks,
|
remarks: input.remarks || null,
|
||||||
created_by: userId,
|
created_by: userId,
|
||||||
updated_by: userId,
|
updated_by: userId,
|
||||||
})
|
})
|
||||||
@@ -859,7 +859,7 @@ export function createFischereiApi(client: SupabaseClient<Database>) {
|
|||||||
species_id: input.speciesId,
|
species_id: input.speciesId,
|
||||||
water_id: input.waterId,
|
water_id: input.waterId,
|
||||||
member_id: input.memberId,
|
member_id: input.memberId,
|
||||||
catch_date: input.catchDate,
|
catch_date: input.catchDate || null,
|
||||||
quantity: input.quantity,
|
quantity: input.quantity,
|
||||||
length_cm: input.lengthCm,
|
length_cm: input.lengthCm,
|
||||||
weight_g: input.weightG,
|
weight_g: input.weightG,
|
||||||
@@ -871,7 +871,7 @@ export function createFischereiApi(client: SupabaseClient<Database>) {
|
|||||||
competition_id: input.competitionId,
|
competition_id: input.competitionId,
|
||||||
competition_participant_id: input.competitionParticipantId,
|
competition_participant_id: input.competitionParticipantId,
|
||||||
permit_id: input.permitId,
|
permit_id: input.permitId,
|
||||||
remarks: input.remarks,
|
remarks: input.remarks || null,
|
||||||
})
|
})
|
||||||
.select()
|
.select()
|
||||||
.single();
|
.single();
|
||||||
|
|||||||
@@ -80,9 +80,9 @@ export function createMeetingsApi(client: SupabaseClient<Database>) {
|
|||||||
.insert({
|
.insert({
|
||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
title: input.title,
|
title: input.title,
|
||||||
meeting_date: input.meetingDate,
|
meeting_date: input.meetingDate || null,
|
||||||
meeting_type: input.meetingType,
|
meeting_type: input.meetingType,
|
||||||
location: input.location,
|
location: input.location || null,
|
||||||
attendees: input.attendees,
|
attendees: input.attendees,
|
||||||
remarks: input.remarks,
|
remarks: input.remarks,
|
||||||
is_published: input.isPublished,
|
is_published: input.isPublished,
|
||||||
|
|||||||
@@ -102,19 +102,19 @@ export function createVerbandApi(client: SupabaseClient<Database>) {
|
|||||||
.insert({
|
.insert({
|
||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
name: input.name,
|
name: input.name,
|
||||||
short_name: input.shortName,
|
short_name: input.shortName || null,
|
||||||
association_type_id: input.associationTypeId,
|
association_type_id: input.associationTypeId,
|
||||||
member_count: input.memberCount,
|
member_count: input.memberCount,
|
||||||
founded_year: input.foundedYear,
|
founded_year: input.foundedYear,
|
||||||
street: input.street,
|
street: input.street,
|
||||||
zip: input.zip,
|
zip: input.zip,
|
||||||
city: input.city,
|
city: input.city,
|
||||||
phone: input.phone,
|
phone: input.phone || null,
|
||||||
email: input.email,
|
email: input.email || null,
|
||||||
website: input.website,
|
website: input.website || null,
|
||||||
iban: input.iban,
|
iban: input.iban || null,
|
||||||
bic: input.bic,
|
bic: input.bic || null,
|
||||||
account_holder: input.accountHolder,
|
account_holder: input.accountHolder || null,
|
||||||
is_archived: input.isArchived,
|
is_archived: input.isArchived,
|
||||||
created_by: userId,
|
created_by: userId,
|
||||||
updated_by: userId,
|
updated_by: userId,
|
||||||
@@ -248,8 +248,8 @@ export function createVerbandApi(client: SupabaseClient<Database>) {
|
|||||||
first_name: input.firstName,
|
first_name: input.firstName,
|
||||||
last_name: input.lastName,
|
last_name: input.lastName,
|
||||||
role: input.role,
|
role: input.role,
|
||||||
phone: input.phone,
|
phone: input.phone || null,
|
||||||
email: input.email,
|
email: input.email || null,
|
||||||
is_primary: input.isPrimary,
|
is_primary: input.isPrimary,
|
||||||
})
|
})
|
||||||
.select()
|
.select()
|
||||||
@@ -309,7 +309,7 @@ export function createVerbandApi(client: SupabaseClient<Database>) {
|
|||||||
.insert({
|
.insert({
|
||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
name: input.name,
|
name: input.name,
|
||||||
description: input.description,
|
description: input.description || null,
|
||||||
sort_order: input.sortOrder,
|
sort_order: input.sortOrder,
|
||||||
})
|
})
|
||||||
.select()
|
.select()
|
||||||
@@ -368,7 +368,7 @@ export function createVerbandApi(client: SupabaseClient<Database>) {
|
|||||||
.insert({
|
.insert({
|
||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
name: input.name,
|
name: input.name,
|
||||||
description: input.description,
|
description: input.description || null,
|
||||||
sort_order: input.sortOrder,
|
sort_order: input.sortOrder,
|
||||||
})
|
})
|
||||||
.select()
|
.select()
|
||||||
@@ -427,7 +427,7 @@ export function createVerbandApi(client: SupabaseClient<Database>) {
|
|||||||
.insert({
|
.insert({
|
||||||
account_id: input.accountId,
|
account_id: input.accountId,
|
||||||
name: input.name,
|
name: input.name,
|
||||||
description: input.description,
|
description: input.description || null,
|
||||||
default_amount: input.defaultAmount,
|
default_amount: input.defaultAmount,
|
||||||
is_active: input.isActive,
|
is_active: input.isActive,
|
||||||
})
|
})
|
||||||
@@ -532,8 +532,8 @@ export function createVerbandApi(client: SupabaseClient<Database>) {
|
|||||||
fee_type_id: input.feeTypeId,
|
fee_type_id: input.feeTypeId,
|
||||||
year: input.year,
|
year: input.year,
|
||||||
amount: input.amount,
|
amount: input.amount,
|
||||||
due_date: input.dueDate,
|
due_date: input.dueDate || null,
|
||||||
paid_date: input.paidDate,
|
paid_date: input.paidDate || null,
|
||||||
payment_method: input.paymentMethod,
|
payment_method: input.paymentMethod,
|
||||||
status: input.status,
|
status: input.status,
|
||||||
notes: input.notes,
|
notes: input.notes,
|
||||||
@@ -605,7 +605,7 @@ export function createVerbandApi(client: SupabaseClient<Database>) {
|
|||||||
title: input.title,
|
title: input.title,
|
||||||
content: input.content,
|
content: input.content,
|
||||||
note_type: input.noteType,
|
note_type: input.noteType,
|
||||||
due_date: input.dueDate,
|
due_date: input.dueDate || null,
|
||||||
is_completed: input.isCompleted,
|
is_completed: input.isCompleted,
|
||||||
})
|
})
|
||||||
.select()
|
.select()
|
||||||
|
|||||||
Reference in New Issue
Block a user