@ansvar/ch-organic-regen-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/check-freshness.yml +49 -0
- package/.github/workflows/ci.yml +21 -0
- package/.github/workflows/codeql.yml +25 -0
- package/.github/workflows/ghcr-build.yml +45 -0
- package/.github/workflows/gitleaks.yml +18 -0
- package/.github/workflows/ingest.yml +59 -0
- package/.github/workflows/publish.yml +24 -0
- package/CHANGELOG.md +15 -0
- package/CODEOWNERS +1 -0
- package/COVERAGE.md +47 -0
- package/DISCLAIMER.md +67 -0
- package/Dockerfile +26 -0
- package/LICENSE +17 -0
- package/PRIVACY.md +23 -0
- package/README.md +117 -0
- package/SECURITY.md +25 -0
- package/TOOLS.md +141 -0
- package/data/coverage.json +22 -0
- package/data/database.db +0 -0
- package/data/sources.yml +36 -0
- package/dist/db.d.ts +25 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +184 -0
- package/dist/db.js.map +1 -0
- package/dist/http-server.d.ts +2 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +263 -0
- package/dist/http-server.js.map +1 -0
- package/dist/jurisdiction.d.ts +18 -0
- package/dist/jurisdiction.d.ts.map +1 -0
- package/dist/jurisdiction.js +16 -0
- package/dist/jurisdiction.js.map +1 -0
- package/dist/metadata.d.ts +11 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +31 -0
- package/dist/metadata.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +209 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/about.d.ts +15 -0
- package/dist/tools/about.d.ts.map +1 -0
- package/dist/tools/about.js +27 -0
- package/dist/tools/about.js.map +1 -0
- package/dist/tools/check-freshness.d.ts +15 -0
- package/dist/tools/check-freshness.d.ts.map +1 -0
- package/dist/tools/check-freshness.js +26 -0
- package/dist/tools/check-freshness.js.map +1 -0
- package/dist/tools/get-approved-inputs.d.ts +26 -0
- package/dist/tools/get-approved-inputs.d.ts.map +1 -0
- package/dist/tools/get-approved-inputs.js +28 -0
- package/dist/tools/get-approved-inputs.js.map +1 -0
- package/dist/tools/get-conversion-requirements.d.ts +28 -0
- package/dist/tools/get-conversion-requirements.d.ts.map +1 -0
- package/dist/tools/get-conversion-requirements.js +32 -0
- package/dist/tools/get-conversion-requirements.js.map +1 -0
- package/dist/tools/get-organic-standards.d.ts +27 -0
- package/dist/tools/get-organic-standards.d.ts.map +1 -0
- package/dist/tools/get-organic-standards.js +31 -0
- package/dist/tools/get-organic-standards.js.map +1 -0
- package/dist/tools/get-organic-subsidies.d.ts +28 -0
- package/dist/tools/get-organic-subsidies.d.ts.map +1 -0
- package/dist/tools/get-organic-subsidies.js +32 -0
- package/dist/tools/get-organic-subsidies.js.map +1 -0
- package/dist/tools/get-soil-health-guidance.d.ts +25 -0
- package/dist/tools/get-soil-health-guidance.d.ts.map +1 -0
- package/dist/tools/get-soil-health-guidance.js +27 -0
- package/dist/tools/get-soil-health-guidance.js.map +1 -0
- package/dist/tools/list-sources.d.ts +18 -0
- package/dist/tools/list-sources.d.ts.map +1 -0
- package/dist/tools/list-sources.js +61 -0
- package/dist/tools/list-sources.js.map +1 -0
- package/dist/tools/search-certification-guidance.d.ts +24 -0
- package/dist/tools/search-certification-guidance.d.ts.map +1 -0
- package/dist/tools/search-certification-guidance.js +24 -0
- package/dist/tools/search-certification-guidance.js.map +1 -0
- package/dist/tools/search-organic-rules.d.ts +25 -0
- package/dist/tools/search-organic-rules.d.ts.map +1 -0
- package/dist/tools/search-organic-rules.js +26 -0
- package/dist/tools/search-organic-rules.js.map +1 -0
- package/docker-compose.yml +12 -0
- package/eslint.config.js +26 -0
- package/package.json +54 -0
- package/scripts/ingest.ts +963 -0
- package/server.json +16 -0
- package/src/db.ts +225 -0
- package/src/http-server.ts +302 -0
- package/src/jurisdiction.ts +30 -0
- package/src/metadata.ts +45 -0
- package/src/server.ts +239 -0
- package/src/tools/about.ts +28 -0
- package/src/tools/check-freshness.ts +42 -0
- package/src/tools/get-approved-inputs.ts +44 -0
- package/src/tools/get-conversion-requirements.ts +50 -0
- package/src/tools/get-organic-standards.ts +48 -0
- package/src/tools/get-organic-subsidies.ts +50 -0
- package/src/tools/get-soil-health-guidance.ts +42 -0
- package/src/tools/list-sources.ts +75 -0
- package/src/tools/search-certification-guidance.ts +41 -0
- package/src/tools/search-organic-rules.ts +35 -0
- package/tests/db.test.ts +96 -0
- package/tests/helpers/seed-db.ts +145 -0
- package/tests/jurisdiction.test.ts +35 -0
- package/tests/tools/about.test.ts +22 -0
- package/tests/tools/check-freshness.test.ts +57 -0
- package/tests/tools/list-sources.test.ts +55 -0
- package/tests/tools/search-organic-rules.test.ts +56 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,963 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Switzerland Organic & Regenerative Farming MCP — Data Ingestion Script
|
|
3
|
+
*
|
|
4
|
+
* Populates the database with Swiss organic and regenerative agriculture data from:
|
|
5
|
+
* - Bio Suisse Richtlinien (Knospe-Standard)
|
|
6
|
+
* - Bio-Verordnung (SR 910.18, BLW)
|
|
7
|
+
* - FiBL Betriebsmittelliste (zugelassene Hilfsstoffe)
|
|
8
|
+
* - Demeter Schweiz Richtlinien (biodynamisch)
|
|
9
|
+
* - DZV Bio-Beitrag (Direktzahlungen)
|
|
10
|
+
* - AGRIDEA Umstellungsberatung
|
|
11
|
+
*
|
|
12
|
+
* All content in German (primary Swiss agricultural language).
|
|
13
|
+
* Currency: CHF. Jurisdiction: CH.
|
|
14
|
+
*
|
|
15
|
+
* Usage: npm run ingest
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { createDatabase } from '../src/db.js';
|
|
19
|
+
import { mkdirSync, writeFileSync } from 'fs';
|
|
20
|
+
|
|
21
|
+
mkdirSync('data', { recursive: true });
|
|
22
|
+
const db = createDatabase('data/database.db');
|
|
23
|
+
|
|
24
|
+
const now = new Date().toISOString().split('T')[0];
|
|
25
|
+
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// 1. Organic Standards — Bio-Verordnung vs. Knospe vs. Demeter
|
|
28
|
+
// Sources: Bio Suisse Richtlinien, Bio-Verordnung SR 910.18, Demeter CH
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
interface OrganicStandard {
|
|
32
|
+
production_type: string;
|
|
33
|
+
standard: string;
|
|
34
|
+
rule: string;
|
|
35
|
+
description: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const organicStandards: OrganicStandard[] = [
|
|
39
|
+
// --- Knospe (Bio Suisse) ---
|
|
40
|
+
{
|
|
41
|
+
production_type: 'futtermittel',
|
|
42
|
+
standard: 'knospe',
|
|
43
|
+
rule: '100% Bio-Futter, davon mindestens 90% Knospe-Qualitaet',
|
|
44
|
+
description:
|
|
45
|
+
'Knospe-Betriebe muessen 100% biologisches Futter einsetzen, davon mindestens 90% aus Knospe-zertifizierter Produktion. ' +
|
|
46
|
+
'Maximal 10% duerfen aus EU-Bio oder gleichwertiger Zertifizierung stammen. Konventionelles Futter ist vollstaendig verboten.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
production_type: 'futtermittel',
|
|
50
|
+
standard: 'bio_verordnung',
|
|
51
|
+
rule: '100% Bio-Futter (Wiederkaeuer), 95% Bio-Futter (Monogastrier)',
|
|
52
|
+
description:
|
|
53
|
+
'Die Bio-Verordnung verlangt 100% Bio-Futter fuer Wiederkaeuer. Fuer Schweine und Gefluegel sind bis zu 5% konventionelle ' +
|
|
54
|
+
'Proteintraeger erlaubt, wenn Bio-Ware nachweislich nicht verfuegbar ist (Bewilligung erforderlich).',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
production_type: 'betriebsumstellung',
|
|
58
|
+
standard: 'knospe',
|
|
59
|
+
rule: 'Gesamtbetriebsumstellung obligatorisch',
|
|
60
|
+
description:
|
|
61
|
+
'Bio Suisse verlangt die Umstellung des gesamten Betriebs. Parallelbetrieb (Bio- und konventionelle Produktion auf ' +
|
|
62
|
+
'demselben Betrieb) ist nicht zulaessig. Alle Flaechen und Tierhaltung muessen nach Knospe-Richtlinien bewirtschaftet werden.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
production_type: 'betriebsumstellung',
|
|
66
|
+
standard: 'bio_verordnung',
|
|
67
|
+
rule: 'Teilumstellung moeglich mit klarer Trennung',
|
|
68
|
+
description:
|
|
69
|
+
'Die Bio-Verordnung erlaubt eine Teilumstellung: Betriebe koennen einzelne Kulturen oder Tierhaltungszweige biologisch ' +
|
|
70
|
+
'fuehren, sofern eine klare Trennung (Buchhaltung, Lagerung, Verarbeitung) gewaehrleistet ist.',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
production_type: 'tierhaltung',
|
|
74
|
+
standard: 'knospe',
|
|
75
|
+
rule: 'RAUS obligatorisch fuer alle Tierkategorien',
|
|
76
|
+
description:
|
|
77
|
+
'Alle Knospe-Betriebe muessen das RAUS-Programm (Regelmaessiger Auslauf ins Freie) fuer saemtliche Tierkategorien ' +
|
|
78
|
+
'einhalten. Dies geht ueber die gesetzlichen Mindestanforderungen der Tierschutzverordnung hinaus. ' +
|
|
79
|
+
'Anbindehaltung ist nur noch bis 2028 mit jaehrlichem RAUS zulaessig.',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
production_type: 'tierhaltung',
|
|
83
|
+
standard: 'bio_verordnung',
|
|
84
|
+
rule: 'Auslauf und Weide vorgeschrieben, RAUS nicht obligatorisch',
|
|
85
|
+
description:
|
|
86
|
+
'Die Bio-Verordnung schreibt Auslauf und Weidezugang vor, verlangt aber nicht explizit das RAUS-Programm. ' +
|
|
87
|
+
'Rinder muessen mindestens 26 Tage im Sommer und 13 Tage im Winter Auslauf erhalten.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
production_type: 'tierhaltung',
|
|
91
|
+
standard: 'demeter',
|
|
92
|
+
rule: 'Enthornung grundsaetzlich verboten, Laufstall obligatorisch',
|
|
93
|
+
description:
|
|
94
|
+
'Demeter verbietet die Enthornung von Rindern grundsaetzlich (Ausnahmen nur bei Sicherheitsproblemen mit Einzeltierbewilligung). ' +
|
|
95
|
+
'Laufstallhaltung ist obligatorisch. Die Fuetterung muss zu mindestens 80% vom eigenen Betrieb stammen (Kreislaufwirtschaft).',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
production_type: 'import',
|
|
99
|
+
standard: 'knospe',
|
|
100
|
+
rule: 'Luftfracht verboten',
|
|
101
|
+
description:
|
|
102
|
+
'Bio Suisse verbietet den Transport von Knospe-Produkten per Luftfracht. Importierte Bio-Produkte mit Knospe-Label ' +
|
|
103
|
+
'muessen per Schiff, Bahn oder LKW transportiert werden. Dies ist ein zentraler Nachhaltigkeitsstandard der Knospe.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
production_type: 'pflanzenbau',
|
|
107
|
+
standard: 'knospe',
|
|
108
|
+
rule: 'Kein Einsatz von synthetischen Pestiziden und Duengern',
|
|
109
|
+
description:
|
|
110
|
+
'Synthetische Pflanzenschutzmittel und mineralische Stickstoffduenger sind verboten. Erlaubt sind nur Mittel der ' +
|
|
111
|
+
'FiBL-Betriebsmittelliste: Kupferpraeparate (max. 4 kg/ha/Jahr), Schwefel, Bacillus thuringiensis (Bt), Granulovirus, ' +
|
|
112
|
+
'Pyrethrine (Chrysanthemenextrakt), Neem und Gesteinsmehle.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
production_type: 'pflanzenbau',
|
|
116
|
+
standard: 'bio_verordnung',
|
|
117
|
+
rule: 'Verzicht auf synthetische PSM, eingeschraenkte Hilfsstoffliste',
|
|
118
|
+
description:
|
|
119
|
+
'Die Bio-Verordnung verbietet synthetische Pflanzenschutzmittel. Die zugelassenen Wirkstoffe entsprechen im Wesentlichen ' +
|
|
120
|
+
'der EU-Bio-Verordnung (Anhang II). Kupfer ist auf max. 4 kg Reinkupfer/ha/Jahr begrenzt (Durchschnitt ueber 5 Jahre).',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
production_type: 'biodiversitaet',
|
|
124
|
+
standard: 'knospe',
|
|
125
|
+
rule: 'Mindestens 12% BFF der landwirtschaftlichen Nutzflaeche',
|
|
126
|
+
description:
|
|
127
|
+
'Knospe-Betriebe muessen mindestens 12% Biodiversitaetsfoerderflaechen (BFF) ausweisen, statt der 7% nach OELN. ' +
|
|
128
|
+
'Davon mindestens 3.5% auf der offenen Ackerflaeche. Knospe verlangt zudem vernetzte BFF und foerdert Qualitaetsstufe II.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
production_type: 'biodiversitaet',
|
|
132
|
+
standard: 'bio_verordnung',
|
|
133
|
+
rule: 'OELN-Anforderungen: 7% BFF',
|
|
134
|
+
description:
|
|
135
|
+
'Bio-Betriebe unter der Bio-Verordnung muessen die OELN-Anforderungen erfuellen: mindestens 7% BFF der landwirtschaftlichen ' +
|
|
136
|
+
'Nutzflaeche, davon 3.5% auf offener Ackerflaeche (ab 2024). Bio gilt als OELN-Aequivalent fuer Direktzahlungsberechtigung.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
production_type: 'verarbeitung',
|
|
140
|
+
standard: 'knospe',
|
|
141
|
+
rule: 'Mindestens 95% Bio-Zutaten, Positivliste fuer Zusatzstoffe',
|
|
142
|
+
description:
|
|
143
|
+
'Knospe-verarbeitete Produkte muessen mindestens 95% Bio-Zutaten enthalten. Zusatzstoffe sind nur gemaess der ' +
|
|
144
|
+
'Bio Suisse Positivliste erlaubt (wesentlich restriktiver als EU-Bio). Nanotechnologie, Bestrahlung und GVO sind verboten.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
production_type: 'verarbeitung',
|
|
148
|
+
standard: 'bio_verordnung',
|
|
149
|
+
rule: 'Mindestens 95% Bio-Zutaten fuer Bio-Kennzeichnung',
|
|
150
|
+
description:
|
|
151
|
+
'Verarbeitete Produkte duerfen als "bio" gekennzeichnet werden, wenn mindestens 95% der landwirtschaftlichen Zutaten ' +
|
|
152
|
+
'aus biologischer Produktion stammen. Die zugelassenen Zusatzstoffe entsprechen der EU-Bio-Positivliste (Anhang VIII).',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
production_type: 'pflanzenbau',
|
|
156
|
+
standard: 'demeter',
|
|
157
|
+
rule: 'Biodynamische Praeparate 500-508 obligatorisch',
|
|
158
|
+
description:
|
|
159
|
+
'Demeter-Betriebe muessen die biodynamischen Praeparate anwenden: Praeparat 500 (Hornmist — Bodenaktivierung im Fruehjahr), ' +
|
|
160
|
+
'Praeparat 501 (Hornkiesel — Lichtimpuls fuer Pflanzenwachstum), Praeparate 502-507 (Kompostpraeparate: Schafgarbe, Kamille, ' +
|
|
161
|
+
'Brennnessel, Eichenrinde, Loewenzahn, Baldrian), Praeparat 508 (Ackerschachtelhalm — Pilzpraevention).',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
production_type: 'tierhaltung',
|
|
165
|
+
standard: 'demeter',
|
|
166
|
+
rule: 'Wiederkaeuer-Haltung obligatorisch fuer Hofkreislauf',
|
|
167
|
+
description:
|
|
168
|
+
'Jeder Demeter-Betrieb muss Wiederkaeuer halten (eigene oder in Kooperation), um den Hofkreislauf ' +
|
|
169
|
+
'(Tier-Pflanze-Boden) zu schliessen. Hofdünger ist die Grundlage der Duengung. Zugekaufte organische Duenger ' +
|
|
170
|
+
'duerfen maximal 40% des Naehrstoffbedarfs decken.',
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
production_type: 'saatgut',
|
|
174
|
+
standard: 'knospe',
|
|
175
|
+
rule: 'Bio-Saatgut bevorzugt, keine GVO, keine CMS-Hybriden',
|
|
176
|
+
description:
|
|
177
|
+
'Knospe-Betriebe muessen Bio-Saatgut einsetzen, soweit verfuegbar (OrganicXseeds-Datenbank). CMS-Hybriden ' +
|
|
178
|
+
'(cytoplasmatische maennliche Sterilitaet durch Protoplastenfusion) sind bei Knospe verboten. GVO-Saatgut ist ' +
|
|
179
|
+
'vollstaendig verboten. Bei Nichtverfuegbarkeit: konventionelles ungebeiztes Saatgut mit Ausnahmebewilligung.',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
production_type: 'duengung',
|
|
183
|
+
standard: 'knospe',
|
|
184
|
+
rule: 'Maximal 2.5 DGVE/ha, Hofdünger-Vorrang',
|
|
185
|
+
description:
|
|
186
|
+
'Knospe begrenzt den Tierbesatz auf maximal 2.5 Duengergrosstiereinheiten (DGVE) pro Hektare. Hofduenger ' +
|
|
187
|
+
'(Mist und Guelle vom eigenen Betrieb) hat Vorrang. Zugekaufter konventioneller Duenger ist nur eingeschraenkt ' +
|
|
188
|
+
'zulaessig (max. 20% des Naehrstoffbedarfs). Guellezukauf nur von Bio- oder RAUS-Betrieben.',
|
|
189
|
+
},
|
|
190
|
+
];
|
|
191
|
+
|
|
192
|
+
const insertStandard = db.instance.prepare(
|
|
193
|
+
`INSERT INTO organic_standards (production_type, standard, rule, description, jurisdiction) VALUES (?, ?, ?, ?, 'CH')`
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
for (const s of organicStandards) {
|
|
197
|
+
insertStandard.run(s.production_type, s.standard, s.rule, s.description);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
console.log(`Inserted ${organicStandards.length} organic standards`);
|
|
201
|
+
|
|
202
|
+
// ---------------------------------------------------------------------------
|
|
203
|
+
// 2. Conversion Requirements — Umstellungsanforderungen
|
|
204
|
+
// Sources: Bio Suisse Umstellungsberatung, Bio-Verordnung, AGRIDEA
|
|
205
|
+
// ---------------------------------------------------------------------------
|
|
206
|
+
|
|
207
|
+
interface ConversionReq {
|
|
208
|
+
farm_type: string;
|
|
209
|
+
current_system: string;
|
|
210
|
+
timeline_years: number;
|
|
211
|
+
requirements: string;
|
|
212
|
+
support_measures: string;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const conversionReqs: ConversionReq[] = [
|
|
216
|
+
{
|
|
217
|
+
farm_type: 'ackerbau',
|
|
218
|
+
current_system: 'oeln',
|
|
219
|
+
timeline_years: 2,
|
|
220
|
+
requirements:
|
|
221
|
+
'Umstellungszeit 2 Jahre fuer einjaehrige Kulturen. Waehrend der Umstellung Bewirtschaftung nach Bio-Richtlinien, ' +
|
|
222
|
+
'aber Vermarktung noch als konventionell (kein Bio-Aufpreis). Suisse-Bilanz muss weiterhin eingehalten werden. ' +
|
|
223
|
+
'Gesamtbetriebsumstellung bei Knospe-Anschluss obligatorisch.',
|
|
224
|
+
support_measures:
|
|
225
|
+
'FiBL-Umstellungskurse (3-taegig), AGRIDEA Umstellungsrechner (online), kantonale Beratungsprogramme, ' +
|
|
226
|
+
'Bio Suisse Umstellungsberatung (erste Beratung kostenlos), Umstellungsbeitrag waehrend Uebergangszeit.',
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
farm_type: 'obstbau',
|
|
230
|
+
current_system: 'oeln',
|
|
231
|
+
timeline_years: 3,
|
|
232
|
+
requirements:
|
|
233
|
+
'Umstellungszeit 3 Jahre fuer Dauerkulturen (Obstanlagen, Beeren). Kompletter Verzicht auf synthetische PSM ab Tag 1 ' +
|
|
234
|
+
'der Umstellung. Kupfer max. 4 kg/ha/Jahr. Alternaria und Schorf erfordern resistente Sorten. Altanlagen mit ' +
|
|
235
|
+
'anfaelligen Sorten koennen erhebliche Ertragsverluste zeigen (20-50% in den ersten Jahren).',
|
|
236
|
+
support_measures:
|
|
237
|
+
'FiBL-Merkblaetter Bioobstbau, Sortenempfehlungen fuer Bio (Topaz, Ariwa, Bonita), kantonale Bio-Obstbauberatung, ' +
|
|
238
|
+
'Erfahrungsaustauschgruppen, FiBL-Bioobstbautagung (jaehrlich in Frick).',
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
farm_type: 'rebbau',
|
|
242
|
+
current_system: 'oeln',
|
|
243
|
+
timeline_years: 3,
|
|
244
|
+
requirements:
|
|
245
|
+
'Umstellungszeit 3 Jahre. Peronospora (Falscher Mehltau) ist die groesste Herausforderung. Kupfer max. 4 kg/ha/Jahr ' +
|
|
246
|
+
'(Durchschnitt ueber 5 Jahre). PIWI-Sorten (pilzwiderstandsfaehig) empfohlen fuer Neuanlagen: Divico, Cabernet Jura, ' +
|
|
247
|
+
'Solaris. Mechanische Laubarbeit und Entblaetterung statt Herbizide.',
|
|
248
|
+
support_measures:
|
|
249
|
+
'FiBL-Rebbaudossier, VitiMeteo-Prognosemodell (Peronospora/Oidium), kantonale Rebbauberatung, AGRIDEA Merkblaetter, ' +
|
|
250
|
+
'Praxis-Erfahrungsgruppen Biorebbau, Arenenberg (TG) und Changins (VD) Fachkurse.',
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
farm_type: 'milchwirtschaft',
|
|
254
|
+
current_system: 'oeln',
|
|
255
|
+
timeline_years: 2,
|
|
256
|
+
requirements:
|
|
257
|
+
'Umstellungszeit 2 Jahre fuer Tier und Flaeche (gleichzeitig, da Gesamtbetrieb). Futterumstellung auf 100% Bio-Futter ' +
|
|
258
|
+
'(Knospe: 90% Knospe-Qualitaet). RAUS obligatorisch bei Knospe. Antibiotikaeinsatz: doppelte Wartefrist gegenueber ' +
|
|
259
|
+
'konventionell. Homoeopathie und Phytotherapie bevorzugt. Max. 3 allopathische Behandlungen pro Tier und Jahr.',
|
|
260
|
+
support_measures:
|
|
261
|
+
'Bio Suisse Milchproduzenten-Beratung, FiBL Tiergesundheit-Beratung, kantonale Bio-Beratungsstellen, ' +
|
|
262
|
+
'Erfahrungsgruppen Bio-Milch, Bio Suisse Milchmarkt-Information.',
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
farm_type: 'mutterkuhhaltung',
|
|
266
|
+
current_system: 'oeln',
|
|
267
|
+
timeline_years: 2,
|
|
268
|
+
requirements:
|
|
269
|
+
'Umstellungszeit 2 Jahre. Bereits relativ extensiv gefuehrt unter OELN, daher oft einfacher als Milchwirtschaft. ' +
|
|
270
|
+
'Weidehaltung und RAUS sind bereits Standard. Hauptumstellung: Futterumstellung auf 100% Bio, Verzicht auf ' +
|
|
271
|
+
'synthetische Antiparasitika (Entwurmungsstrategie anpassen), Bio-Zuchtremonte.',
|
|
272
|
+
support_measures:
|
|
273
|
+
'Mutterkuh Schweiz Bio-Beratung, FiBL Parasiten-Merkblatt, Bio Suisse Marktzugang (Knospe-Fleisch Aufpreis ' +
|
|
274
|
+
'ca. 15-25%), kantonale Beratung.',
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
farm_type: 'gemuese',
|
|
278
|
+
current_system: 'konventionell',
|
|
279
|
+
timeline_years: 2,
|
|
280
|
+
requirements:
|
|
281
|
+
'Umstellungszeit 2 Jahre. Gemuese ist anspruchsvoll: hoher Unkrautdruck erfordert Investition in mechanische ' +
|
|
282
|
+
'Unkrautbekaempfung (Hackgeraet, Abflammgeraet, Fingerhacke). Duengung primaer ueber Kompost und organische ' +
|
|
283
|
+
'Handelduenger. Fruchtfolge mit mindestens 25% Nicht-Gemuese-Kulturen empfohlen.',
|
|
284
|
+
support_measures:
|
|
285
|
+
'FiBL Bio-Gemuesebau-Beratung, AGRIDEA Gemuesebau-Merkblaetter, kantonale Spezialberatung, ' +
|
|
286
|
+
'Biogemuese-Produzenten-Plattform, FiBL Sortenversuche Biogemuese.',
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
farm_type: 'bergbetrieb',
|
|
290
|
+
current_system: 'oeln',
|
|
291
|
+
timeline_years: 2,
|
|
292
|
+
requirements:
|
|
293
|
+
'Umstellungszeit 2 Jahre. Bergbetriebe sind oft bereits extensiv und erfuellen viele Bio-Anforderungen. ' +
|
|
294
|
+
'Hauptherausforderungen: Bio-Futtermittel in hoeheren Lagen beschaffen, Veterinaerunterstuetzung, Transport. ' +
|
|
295
|
+
'Bio-Beitrag ist mit Produktionserschwernisbeitrag kumulierbar — wichtiges Einkommenspotenzial im Berggebiet.',
|
|
296
|
+
support_measures:
|
|
297
|
+
'AGRIDEA Bergberatung, FiBL Berglandwirtschaft-Beratung, Schweizer Berghilfe (ergaenzende Foerderung), ' +
|
|
298
|
+
'Bio-Alpkaeseberatung, kantonale Berglandwirtschafts-Fachstellen.',
|
|
299
|
+
},
|
|
300
|
+
];
|
|
301
|
+
|
|
302
|
+
const insertConversion = db.instance.prepare(
|
|
303
|
+
`INSERT INTO conversion_requirements (farm_type, current_system, timeline_years, requirements, support_measures, jurisdiction) VALUES (?, ?, ?, ?, ?, 'CH')`
|
|
304
|
+
);
|
|
305
|
+
|
|
306
|
+
for (const c of conversionReqs) {
|
|
307
|
+
insertConversion.run(c.farm_type, c.current_system, c.timeline_years, c.requirements, c.support_measures);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
console.log(`Inserted ${conversionReqs.length} conversion requirements`);
|
|
311
|
+
|
|
312
|
+
// ---------------------------------------------------------------------------
|
|
313
|
+
// 3. Approved Inputs — FiBL Betriebsmittelliste
|
|
314
|
+
// Sources: FiBL betriebsmittelliste.ch, Bio Suisse Richtlinien
|
|
315
|
+
// ---------------------------------------------------------------------------
|
|
316
|
+
|
|
317
|
+
interface ApprovedInput {
|
|
318
|
+
input_type: string;
|
|
319
|
+
product_name: string;
|
|
320
|
+
description: string;
|
|
321
|
+
restrictions: string;
|
|
322
|
+
source: string;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
const approvedInputs: ApprovedInput[] = [
|
|
326
|
+
// --- Duenger ---
|
|
327
|
+
{
|
|
328
|
+
input_type: 'duenger',
|
|
329
|
+
product_name: 'Kompost (Gruengut, Mist)',
|
|
330
|
+
description: 'Kompost aus pflanzlichen Abfaellen oder Hofmist. Grundlage der Bio-Duengung. Foerdert Humusaufbau und Bodenbiologie.',
|
|
331
|
+
restrictions: 'Nur aus Bio- oder definierten Gruengutquellen. Kein Klaerschlamm. Kompostqualitaet: Schwermetallgrenzwerte einhalten.',
|
|
332
|
+
source: 'FiBL Betriebsmittelliste',
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
input_type: 'duenger',
|
|
336
|
+
product_name: 'Hornmehl / Hornspäne',
|
|
337
|
+
description: 'Organischer Stickstoffduenger aus Horn (Rinderhornmehl). Langsam wirkend (4-6 Wochen). Ca. 12-14% N.',
|
|
338
|
+
restrictions: 'Nur aus biologischer oder extensiver Tierhaltung bevorzugt. Ausbringung im Fruehjahr.',
|
|
339
|
+
source: 'FiBL Betriebsmittelliste',
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
input_type: 'duenger',
|
|
343
|
+
product_name: 'Gesteinsmehl (Basalt, Diabas)',
|
|
344
|
+
description: 'Mineralischer Bodenverbesserer. Liefert Spurenelemente (Si, Ca, Mg, Fe). Foerdert Tonmineralbildung und Bodenstruktur.',
|
|
345
|
+
restrictions: 'Keine synthetischen Zusaetze. Natuerliche Gesteinsmehle ohne chemische Aufbereitung.',
|
|
346
|
+
source: 'FiBL Betriebsmittelliste',
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
input_type: 'duenger',
|
|
350
|
+
product_name: 'Gruendüngung (Leguminosen-Mischungen)',
|
|
351
|
+
description:
|
|
352
|
+
'Biologische Stickstoff-Fixierung durch Leguminosen: Luzerne, Rotklee, Alexandrinerklee, Inkarnatklee, Wicken. ' +
|
|
353
|
+
'Knospe verlangt mindestens 20% Leguminosen in der Fruchtfolge.',
|
|
354
|
+
restrictions: 'Bio-Saatgut bevorzugt. Keine CMS-Hybriden bei Knospe.',
|
|
355
|
+
source: 'FiBL Betriebsmittelliste / Bio Suisse Richtlinien',
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
input_type: 'duenger',
|
|
359
|
+
product_name: 'Vinasse (Melasse-Rueckstand)',
|
|
360
|
+
description: 'Kaliumreicher organischer Duenger aus der Zuckerproduktion. Ca. 5% K2O, 2% N. Foerdert Bodenmikroorganismen.',
|
|
361
|
+
restrictions: 'Nur aus biologischer oder konventioneller Melasse ohne synthetische Zusaetze. Max. Ausbringung beachten.',
|
|
362
|
+
source: 'FiBL Betriebsmittelliste',
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
input_type: 'duenger',
|
|
366
|
+
product_name: 'Kaliumsulfat (natuerliches)',
|
|
367
|
+
description: 'Natuerliches Kali aus Langbeinit oder Kieserit. Fuer Spezialkulturen mit hohem Kaliumbedarf (Kartoffeln, Gemuese).',
|
|
368
|
+
restrictions: 'Nur natuerlich gewonnenes Kaliumsulfat, kein synthetisches KCl.',
|
|
369
|
+
source: 'FiBL Betriebsmittelliste',
|
|
370
|
+
},
|
|
371
|
+
// --- Pflanzenschutz ---
|
|
372
|
+
{
|
|
373
|
+
input_type: 'pflanzenschutz',
|
|
374
|
+
product_name: 'Kupferpraeparate (Kupferhydroxid, Kupferoxychlorid, Bordeauxbruehe)',
|
|
375
|
+
description:
|
|
376
|
+
'Fungizid gegen Falschen Mehltau (Peronospora), Krautfaeule (Kartoffel), Schorf (Obst). ' +
|
|
377
|
+
'Wichtigstes Fungizid im Bio-Rebbau und Bio-Kartoffelbau.',
|
|
378
|
+
restrictions:
|
|
379
|
+
'Maximal 4 kg Reinkupfer/ha/Jahr (Durchschnitt ueber 5 Jahre). Knospe und Bio-Verordnung identisch. ' +
|
|
380
|
+
'Kupferakkumulation im Boden beachten. Reduktionsstrategie empfohlen.',
|
|
381
|
+
source: 'FiBL Betriebsmittelliste',
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
input_type: 'pflanzenschutz',
|
|
385
|
+
product_name: 'Schwefel (Netzschwefel)',
|
|
386
|
+
description:
|
|
387
|
+
'Fungizid und Akarizid gegen Echten Mehltau (Oidium), Gallmilben. Anwendung im Rebbau, Obstbau und Ackerbau. ' +
|
|
388
|
+
'Kontakt- und Dampfwirkung. Gute Vertraeglichkeit bei den meisten Kulturen.',
|
|
389
|
+
restrictions: 'Nicht bei Temperaturen ueber 25°C anwenden (Verbrennungsgefahr). Wartefrist je nach Kultur beachten.',
|
|
390
|
+
source: 'FiBL Betriebsmittelliste',
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
input_type: 'pflanzenschutz',
|
|
394
|
+
product_name: 'Bacillus thuringiensis (Bt)',
|
|
395
|
+
description:
|
|
396
|
+
'Biologisches Insektizid gegen Raupen (Apfelwickler, Kohlweissling, Maiszuensler, Buchsbaumzuensler). ' +
|
|
397
|
+
'Spezifisch fuer Lepidoptera-Larven. Kein Effekt auf Nuetzlinge und Bestaeubende.',
|
|
398
|
+
restrictions: 'Nur bei aktivem Larvenstadium anwenden. UV-empfindlich — Abendapplikation empfohlen. Keine Resistenzentwicklung bekannt.',
|
|
399
|
+
source: 'FiBL Betriebsmittelliste',
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
input_type: 'pflanzenschutz',
|
|
403
|
+
product_name: 'Granulovirus (CpGV)',
|
|
404
|
+
description:
|
|
405
|
+
'Biologisches Insektizid gegen Apfelwickler (Cydia pomonella). Hochspezifisch. ' +
|
|
406
|
+
'Standardmittel im Bio-Obstbau. Anwendung ab Eiablage.',
|
|
407
|
+
restrictions: 'UV-empfindlich, mehrmalige Anwendung erforderlich. Kuehle Lagerung.',
|
|
408
|
+
source: 'FiBL Betriebsmittelliste',
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
input_type: 'pflanzenschutz',
|
|
412
|
+
product_name: 'Pyrethrin (Chrysanthemenextrakt)',
|
|
413
|
+
description:
|
|
414
|
+
'Breitband-Insektizid aus Chrysanthemum cinerariaefolium. Schnelle Kontaktwirkung. ' +
|
|
415
|
+
'Anwendung gegen Blattlaeuse, Rapsglanzkaefer, Kartoffelkaefer.',
|
|
416
|
+
restrictions:
|
|
417
|
+
'Nicht bienenungefaehrlich — Anwendung ausserhalb der Bienenflugzeit. Schneller Abbau (UV). ' +
|
|
418
|
+
'Nur bei Ueberschreitung der Schadschwelle. Knospe: restriktiver Einsatz.',
|
|
419
|
+
source: 'FiBL Betriebsmittelliste',
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
input_type: 'pflanzenschutz',
|
|
423
|
+
product_name: 'Neempraeparate (Azadirachtin)',
|
|
424
|
+
description:
|
|
425
|
+
'Insektizid und Frassschutz aus dem Neembaum (Azadirachta indica). Wirkt gegen Kartoffelkaefer, ' +
|
|
426
|
+
'Blattlaeuse, Thripse. Fraess- und Haeutungshemmung.',
|
|
427
|
+
restrictions: 'Nicht bienenungefaehrlich bei Bluehkulturen. Nur bei nachgewiesenem Befall. Wartefrist beachten.',
|
|
428
|
+
source: 'FiBL Betriebsmittelliste',
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
input_type: 'pflanzenschutz',
|
|
432
|
+
product_name: 'Kaliseife (Schmierseife)',
|
|
433
|
+
description:
|
|
434
|
+
'Kontaktinsektizid gegen Blattlaeuse, Weisse Fliegen, Spinnmilben. Physikalische Wirkung ' +
|
|
435
|
+
'(Verschluss der Atemoeeffnungen). Geringes Risiko fuer Nuetzlinge.',
|
|
436
|
+
restrictions: 'Keine Anwendung bei starker Sonneneinstrahlung (Verbrennungsgefahr). Gute Benetzung erforderlich.',
|
|
437
|
+
source: 'FiBL Betriebsmittelliste',
|
|
438
|
+
},
|
|
439
|
+
// --- Futtermittel ---
|
|
440
|
+
{
|
|
441
|
+
input_type: 'futtermittel',
|
|
442
|
+
product_name: 'Bio-Kraftfutter (Mischfutter)',
|
|
443
|
+
description:
|
|
444
|
+
'Knospe-zertifiziertes Mischfutter. Zusammensetzung je nach Tierkategorie (Milchvieh, Schweine, Gefluegel). ' +
|
|
445
|
+
'Herkunft: bevorzugt Schweizer Bio-Getreide und -Eiweisskomponenten (Erbsen, Ackerbohnen, Sonnenblumen).',
|
|
446
|
+
restrictions:
|
|
447
|
+
'Knospe: 90% Knospe-Qualitaet, restliche 10% EU-Bio. Keine GVO-Komponenten. ' +
|
|
448
|
+
'Kein Palmoel. Keine synthetischen Aminosaeuren (ausser Methionin fuer Gefluegel mit Bewilligung).',
|
|
449
|
+
source: 'FiBL Betriebsmittelliste / Bio Suisse Richtlinien',
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
input_type: 'futtermittel',
|
|
453
|
+
product_name: 'Bio-Mineralstoffe und Vitamine',
|
|
454
|
+
description:
|
|
455
|
+
'Mineralstoffergaenzung fuer Bio-Tierhaltung: Viehsalz, Calcium, Phosphor, Spurenelemente (Zink, Kupfer, Selen). ' +
|
|
456
|
+
'Vitamine A, D, E als natuerliche oder naturidentische Praeparate.',
|
|
457
|
+
restrictions: 'Nur Produkte der FiBL-Betriebsmittelliste. Keine synthetischen Farbstoffe oder Konservierungsmittel.',
|
|
458
|
+
source: 'FiBL Betriebsmittelliste',
|
|
459
|
+
},
|
|
460
|
+
];
|
|
461
|
+
|
|
462
|
+
const insertInput = db.instance.prepare(
|
|
463
|
+
`INSERT INTO approved_inputs (input_type, product_name, description, restrictions, source, jurisdiction) VALUES (?, ?, ?, ?, ?, 'CH')`
|
|
464
|
+
);
|
|
465
|
+
|
|
466
|
+
for (const inp of approvedInputs) {
|
|
467
|
+
insertInput.run(inp.input_type, inp.product_name, inp.description, inp.restrictions, inp.source);
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
console.log(`Inserted ${approvedInputs.length} approved inputs`);
|
|
471
|
+
|
|
472
|
+
// ---------------------------------------------------------------------------
|
|
473
|
+
// 4. Organic Subsidies — Bio-Beitrag and related payments
|
|
474
|
+
// Sources: DZV (Direktzahlungsverordnung), BLW
|
|
475
|
+
// ---------------------------------------------------------------------------
|
|
476
|
+
|
|
477
|
+
interface OrganicSubsidy {
|
|
478
|
+
subsidy_type: string;
|
|
479
|
+
zone: string | null;
|
|
480
|
+
rate_chf_ha: number;
|
|
481
|
+
conditions: string;
|
|
482
|
+
stacking_rules: string;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
const organicSubsidies: OrganicSubsidy[] = [
|
|
486
|
+
{
|
|
487
|
+
subsidy_type: 'bio_beitrag',
|
|
488
|
+
zone: null,
|
|
489
|
+
rate_chf_ha: 1700,
|
|
490
|
+
conditions:
|
|
491
|
+
'Spezialkulturen (Obst, Reben, Gemuese, Beeren, Medizinal-/Gewuerzpflanzen). ' +
|
|
492
|
+
'Betrieb muss Bio-Verordnung erfuellen. Knospe oder gleichwertig.',
|
|
493
|
+
stacking_rules: 'Kumulierbar mit Extenso, BFF-Beitraegen, Tierwohlbeitraegen, Kulturlandschaftsbeitraegen.',
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
subsidy_type: 'bio_beitrag',
|
|
497
|
+
zone: null,
|
|
498
|
+
rate_chf_ha: 1200,
|
|
499
|
+
conditions:
|
|
500
|
+
'Offene Ackerflaeche (Getreide, Mais, Kartoffeln, Zuckerrueben, Raps, Eiweisserbsen). ' +
|
|
501
|
+
'Bio-Bewirtschaftung gemaess Bio-Verordnung.',
|
|
502
|
+
stacking_rules: 'Kumulierbar mit Extenso (400 CHF/ha), BFF, Tierwohl. Extenso + Bio = 1600 CHF/ha Getreide.',
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
subsidy_type: 'bio_beitrag',
|
|
506
|
+
zone: null,
|
|
507
|
+
rate_chf_ha: 200,
|
|
508
|
+
conditions:
|
|
509
|
+
'Uebrige landwirtschaftliche Nutzflaeche (Dauergruenland, Kunstwiese, wenig intensiv genutzte Wiese). ' +
|
|
510
|
+
'Bio-Bewirtschaftung gemaess Bio-Verordnung.',
|
|
511
|
+
stacking_rules: 'Kumulierbar mit BFF (extensiv genutzte Wiese: QI 450 + QII 1070 CHF/ha), Tierwohl, Vernetzung.',
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
subsidy_type: 'extenso',
|
|
515
|
+
zone: null,
|
|
516
|
+
rate_chf_ha: 400,
|
|
517
|
+
conditions:
|
|
518
|
+
'Extenso-Beitrag fuer Getreide, Sonnenblumen, Eiweisserbsen, Ackerbohnen, Raps ohne Fungizide, Insektizide ' +
|
|
519
|
+
'und Wachstumsregulatoren. Bio-Betriebe erfuellen Extenso automatisch.',
|
|
520
|
+
stacking_rules: 'Kumulierbar mit Bio-Beitrag. Bio + Extenso Winterweizen: 1200 + 400 = 1600 CHF/ha.',
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
subsidy_type: 'bff_extensiv_wiese_q1',
|
|
524
|
+
zone: 'talzone',
|
|
525
|
+
rate_chf_ha: 450,
|
|
526
|
+
conditions:
|
|
527
|
+
'Extensiv genutzte Wiese Qualitaetsstufe I (QI). Kein Duenger, kein Pflanzenschutz, Schnittzeitpunkt ab 15. Juni. ' +
|
|
528
|
+
'Bio-Betriebe koennen BFF-Flaechen besonders gut integrieren.',
|
|
529
|
+
stacking_rules: 'QII-Zuschlag (1070 CHF/ha) und Vernetzung (1000 CHF/ha) kumulierbar. Total bis 2520 CHF/ha.',
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
subsidy_type: 'bff_extensiv_wiese_q2',
|
|
533
|
+
zone: 'talzone',
|
|
534
|
+
rate_chf_ha: 1070,
|
|
535
|
+
conditions:
|
|
536
|
+
'Qualitaetsstufe II: mindestens 6 Indikatorpflanzen aus der regionalen Artenliste. ' +
|
|
537
|
+
'Bestimmung durch kantonale Fachstelle oder anerkannten Botaniker.',
|
|
538
|
+
stacking_rules: 'Zusaetzlich zu QI (450 CHF/ha). Plus Vernetzung (1000 CHF/ha) moeglich.',
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
subsidy_type: 'vernetzung',
|
|
542
|
+
zone: null,
|
|
543
|
+
rate_chf_ha: 1000,
|
|
544
|
+
conditions:
|
|
545
|
+
'Vernetzungsbeitrag fuer BFF in kantonalen Vernetzungsprojekten. Ziel: oekologische Vernetzung ' +
|
|
546
|
+
'zwischen BFF-Flaechen. Kantonale Vernetzungsprojekte legen Massnahmen und Zielarten fest.',
|
|
547
|
+
stacking_rules: 'Kumulierbar mit QI, QII und Bio-Beitrag.',
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
subsidy_type: 'tierwohl_raus',
|
|
551
|
+
zone: null,
|
|
552
|
+
rate_chf_ha: 0,
|
|
553
|
+
conditions:
|
|
554
|
+
'RAUS-Beitrag pro GVE (nicht pro ha): Milchkuehe/Mutterkühe 190 CHF/GVE, Aufzuchtrinder 190 CHF/GVE, ' +
|
|
555
|
+
'Mastschweine 155 CHF/GVE, Zuchtsauen 370 CHF/GVE, Legehennen 280 CHF/GVE. ' +
|
|
556
|
+
'Bei Knospe ist RAUS obligatorisch — Beitrag wird trotzdem ausbezahlt.',
|
|
557
|
+
stacking_rules: 'Kumulierbar mit BTS und Bio-Beitrag. RAUS + BTS = maximaler Tierwohlbeitrag.',
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
subsidy_type: 'tierwohl_bts',
|
|
561
|
+
zone: null,
|
|
562
|
+
rate_chf_ha: 0,
|
|
563
|
+
conditions:
|
|
564
|
+
'BTS-Beitrag (Besonders tierfreundliche Stallhaltungssysteme) pro GVE: Milchkuehe 90 CHF/GVE, ' +
|
|
565
|
+
'Aufzuchtrinder 90 CHF/GVE, Mastschweine 155 CHF/GVE, Zuchtsauen 155 CHF/GVE, Legehennen 155 CHF/GVE. ' +
|
|
566
|
+
'Laufstall mit Einstreu und Liegebereich.',
|
|
567
|
+
stacking_rules: 'Kumulierbar mit RAUS und Bio-Beitrag.',
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
subsidy_type: 'produktionserschwernisbeitrag',
|
|
571
|
+
zone: 'bergzone_i',
|
|
572
|
+
rate_chf_ha: 320,
|
|
573
|
+
conditions: 'Beitrag fuer Produktionserschwernis im Berggebiet. Bergzone I: 320 CHF/ha.',
|
|
574
|
+
stacking_rules: 'Kumulierbar mit Bio-Beitrag und allen anderen Direktzahlungen.',
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
subsidy_type: 'produktionserschwernisbeitrag',
|
|
578
|
+
zone: 'bergzone_ii',
|
|
579
|
+
rate_chf_ha: 540,
|
|
580
|
+
conditions: 'Bergzone II: 540 CHF/ha. Erschwerter Zugang, steilere Lagen.',
|
|
581
|
+
stacking_rules: 'Kumulierbar mit Bio-Beitrag und allen anderen Direktzahlungen.',
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
subsidy_type: 'produktionserschwernisbeitrag',
|
|
585
|
+
zone: 'bergzone_iii',
|
|
586
|
+
rate_chf_ha: 720,
|
|
587
|
+
conditions: 'Bergzone III: 720 CHF/ha. Hoehenlage, starke Topografie.',
|
|
588
|
+
stacking_rules: 'Kumulierbar mit Bio-Beitrag und allen anderen Direktzahlungen.',
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
subsidy_type: 'produktionserschwernisbeitrag',
|
|
592
|
+
zone: 'bergzone_iv',
|
|
593
|
+
rate_chf_ha: 860,
|
|
594
|
+
conditions: 'Bergzone IV: 860 CHF/ha. Extremste Produktionsbedingungen.',
|
|
595
|
+
stacking_rules: 'Kumulierbar mit Bio-Beitrag und allen anderen Direktzahlungen.',
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
subsidy_type: 'schonende_bodenbearbeitung',
|
|
599
|
+
zone: null,
|
|
600
|
+
rate_chf_ha: 250,
|
|
601
|
+
conditions:
|
|
602
|
+
'Ressourceneffizienzbeitrag fuer schonende Bodenbearbeitung (Mulch- oder Direktsaat). ' +
|
|
603
|
+
'Besonders relevant fuer Bio-Betriebe mit Conservation Agriculture.',
|
|
604
|
+
stacking_rules: 'Kumulierbar mit Bio-Beitrag und Extenso.',
|
|
605
|
+
},
|
|
606
|
+
];
|
|
607
|
+
|
|
608
|
+
const insertSubsidy = db.instance.prepare(
|
|
609
|
+
`INSERT INTO organic_subsidies (subsidy_type, zone, rate_chf_ha, conditions, stacking_rules, jurisdiction) VALUES (?, ?, ?, ?, ?, 'CH')`
|
|
610
|
+
);
|
|
611
|
+
|
|
612
|
+
for (const s of organicSubsidies) {
|
|
613
|
+
insertSubsidy.run(s.subsidy_type, s.zone, s.rate_chf_ha, s.conditions, s.stacking_rules);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
console.log(`Inserted ${organicSubsidies.length} organic subsidies`);
|
|
617
|
+
|
|
618
|
+
// ---------------------------------------------------------------------------
|
|
619
|
+
// 5. Soil Health — Bodenfruchtbarkeit & Regenerative Methoden
|
|
620
|
+
// Sources: FiBL, AGRIDEA, Agroscope, Bio Suisse
|
|
621
|
+
// ---------------------------------------------------------------------------
|
|
622
|
+
|
|
623
|
+
interface SoilHealthEntry {
|
|
624
|
+
topic: string;
|
|
625
|
+
guidance: string;
|
|
626
|
+
technique: string;
|
|
627
|
+
benefits: string;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
const soilHealthEntries: SoilHealthEntry[] = [
|
|
631
|
+
{
|
|
632
|
+
topic: 'kompostierung',
|
|
633
|
+
guidance:
|
|
634
|
+
'Kompost ist die Grundlage der Bio-Duengung. Feldrandkompostierung oder zentrale Kompostierung ' +
|
|
635
|
+
'mit Thermophase (>55°C ueber 3 Wochen) zur Hygienisierung. Ziel: stabiler Reifkompost mit C/N < 20.',
|
|
636
|
+
technique: 'Mietenkompostierung mit regelmaessigem Umsetzen (3-5 mal). Zuschlagstoffe: Gesteinsmehl, Holzasche, Tonminerale.',
|
|
637
|
+
benefits:
|
|
638
|
+
'Humusaufbau (1-2 t Humus/ha/Jahr bei 10 t Kompost), Verbesserung der Wasserhaltekapazitaet, ' +
|
|
639
|
+
'Foerderung der Bodenbiologie (Regenwuermer, Mykorrhiza), langsame Naehrstofffreisetzung, Krankheitssuppression.',
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
topic: 'gruenduengung',
|
|
643
|
+
guidance:
|
|
644
|
+
'Gruenduengung schliesst Naehrstofflücken in der Fruchtfolge und schuetzt den Boden vor Erosion. ' +
|
|
645
|
+
'Knospe verlangt mind. 20% Leguminosen in der Fruchtfolge fuer biologische N-Fixierung.',
|
|
646
|
+
technique:
|
|
647
|
+
'Untersaaten (Weissklee in Getreide), Zwischenfruechte (Phacelia, Alexandrinerklee, Wicken-Hafer-Gemenge), ' +
|
|
648
|
+
'Ueberwinterer (Inkarnatklee, Winterwicken). Aussaat moeglichst frueh nach Ernte der Hauptkultur.',
|
|
649
|
+
benefits:
|
|
650
|
+
'N-Fixierung 80-200 kg N/ha (Luzerne), Erosionsschutz, Unkrautunterdrueckung, Foerderung von Nuetzlingen, ' +
|
|
651
|
+
'Auflockerung des Unterbodens (Luzerne-Pfahlwurzel), Futter fuer Bestaeubende (Phacelia).',
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
topic: 'fruchtfolge',
|
|
655
|
+
guidance:
|
|
656
|
+
'Bio erfordert eine vielfaeltige Fruchtfolge: mindestens 4 Kulturen, davon 20% Leguminosen (Knospe). ' +
|
|
657
|
+
'Maximal 50% Getreide. Keine Monokultur. Abwechslung Blatt-/Halmfrucht empfohlen.',
|
|
658
|
+
technique:
|
|
659
|
+
'Beispiel-Fruchtfolge Talzone: Kunstwiese (2-jaehrig, Klee-Gras) → Winterweizen → Kartoffeln → Wintergerste ' +
|
|
660
|
+
'mit Untersaat → Winterraps → Erbsen → Winterweizen → Mais. Anpassung an Standort und Betriebstyp.',
|
|
661
|
+
benefits:
|
|
662
|
+
'Unterbrechung von Krankheitszyklen, Unkrautregulierung, ausgeglichene Naehrstoffbilanz, ' +
|
|
663
|
+
'Verbesserung der Bodenstruktur, Risikodiversifizierung.',
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
topic: 'mechanische_unkrautbekaempfung',
|
|
667
|
+
guidance:
|
|
668
|
+
'Ohne synthetische Herbizide ist mechanische Unkrautbekaempfung zentral. Timing ist entscheidend: ' +
|
|
669
|
+
'Unkraut im Faden- bis Keimblattstadium bekaempfen. Falschsaatbettechnik zur Reduktion des Samenvorrats.',
|
|
670
|
+
technique:
|
|
671
|
+
'Striegel (Getreide, Erbsen), Hackgeraet mit Kamera-/GPS-Steuerung (Mais, Rueben, Gemuese), ' +
|
|
672
|
+
'Fingerhacke (Reihenkulturen), Abflammgeraet (vor Auflauf Kartoffeln, Karotten), Buersten (Gemuese).',
|
|
673
|
+
benefits:
|
|
674
|
+
'Keine Rueckstaende in Boden und Grundwasser, Foerderung der Bodendurchlueftung, ' +
|
|
675
|
+
'Aktivierung des Bodenlebens, Reduzierung des Unkrautsamenvorrats durch Falschsaatbett.',
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
topic: 'conservation_agriculture',
|
|
679
|
+
guidance:
|
|
680
|
+
'Conservation Agriculture (CA) kombiniert Minimalbodenbearbeitung, permanente Bodenbedeckung und vielfaeltige ' +
|
|
681
|
+
'Fruchtfolge. Im Bio-Kontext herausfordernd wegen fehlendem Herbizideinsatz, aber zunehmend erforscht.',
|
|
682
|
+
technique:
|
|
683
|
+
'Bio-Direktsaat in abgefrorene oder gewalzte Gruenduengung (Roller-Crimper). Strip-Till fuer Reihenkulturen. ' +
|
|
684
|
+
'Mulchsaat mit Kreiselegge statt Pflug. FiBL-Langzeitversuch zeigt positive Ergebnisse.',
|
|
685
|
+
benefits:
|
|
686
|
+
'Erhalt der Bodenstruktur (keine Pflugsohle), Foerderung der Regenwurmpopulation (bis 400%), ' +
|
|
687
|
+
'bessere Wasserinfiltration, Humusaufbau in der obersten Bodenschicht, Reduktion von Dieselverbrauch und Arbeitszeit.',
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
topic: 'agroforstwirtschaft',
|
|
691
|
+
guidance:
|
|
692
|
+
'Integration von Baeumen in landwirtschaftliche Nutzflaechen. In der Schweiz zunehmend als Klimaanpassungsstrategie ' +
|
|
693
|
+
'anerkannt. Agroscope und FiBL forschen an Agroforstsystemen fuer Schweizer Verhaeltnisse.',
|
|
694
|
+
technique:
|
|
695
|
+
'Silvoarable: Baumreihen (Walnuss, Kirsche, Apfel) im 24-36m Abstand mit Ackerkulturen dazwischen. ' +
|
|
696
|
+
'Silvopastoral: Obstbaeume auf Weiden. Moderne Systeme: Hochstamm-Obst + Weidehaltung (traditionell in CH).',
|
|
697
|
+
benefits:
|
|
698
|
+
'Kohlenstoffspeicherung (2-5 t CO2/ha/Jahr), Beschattung bei Hitze (Tierwohl), Windschutz, ' +
|
|
699
|
+
'Erosionsschutz, Biodiversitaet (Nistplaetze), zusaetzliches Einkommen (Holz, Fruechte, Nüsse).',
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
topic: 'komposttee',
|
|
703
|
+
guidance:
|
|
704
|
+
'Waessriger Auszug aus reifem Kompost. Foerdert Bodenbiologie und Blattpflanzengesundheit. ' +
|
|
705
|
+
'In der Regenerativen Landwirtschaft als Werkzeug fuer Bodenaufbau verbreitet.',
|
|
706
|
+
technique:
|
|
707
|
+
'Beluefteter Komposttee: Reifkompost 24-48h in Wasser mit Belueftung extrahieren. Zuschlag von Melasse als ' +
|
|
708
|
+
'Nahrung fuer Mikroorganismen. Ausbringung mit Feldspritze, 200-500 l/ha. Anwendung morgens oder abends.',
|
|
709
|
+
benefits:
|
|
710
|
+
'Foerderung nuetzlicher Mikroorganismen auf Blatt und Boden, potenzielle Krankheitssuppression ' +
|
|
711
|
+
'(Konkurrenz gegen pathogene Pilze), Naehrstoffmobilisierung, Verbesserung der Bodenatmung.',
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
topic: 'untersaaten_mischkulturen',
|
|
715
|
+
guidance:
|
|
716
|
+
'Untersaaten und Mischkulturen erhoehen die Bodenbedeckung und foerdern die biologische Vielfalt auf dem Acker. ' +
|
|
717
|
+
'In der Schweiz besonders relevant fuer Mais und Getreide.',
|
|
718
|
+
technique:
|
|
719
|
+
'Weissklee-Untersaat in Wintergetreide (Aussaat im Fruehjahr). Mais mit Untersaat (Raygras, Klee). ' +
|
|
720
|
+
'Mischkulturen: Erbse-Gerste, Leindotter-Linse, Mais-Bohne (Milpa). Streifenanbau (Strip Cropping).',
|
|
721
|
+
benefits:
|
|
722
|
+
'Permanente Bodenbedeckung, Unkrautunterdrueckung, N-Fixierung (Kleeuntersaat), ' +
|
|
723
|
+
'Foerderung von Nuetzlingen, Erosionsschutz, Futter fuer Bestaeubende.',
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
topic: 'bodenanalyse',
|
|
727
|
+
guidance:
|
|
728
|
+
'Regelmaessige Bodenanalysen sind fuer Bio-Betriebe besonders wichtig, da die Duengungsmassnahmen begrenzt sind. ' +
|
|
729
|
+
'Alle 5 Jahre empfohlen. Neben chemischer Analyse auch biologische Indikatoren beruecksichtigen.',
|
|
730
|
+
technique:
|
|
731
|
+
'Standardanalyse: pH, P2O5, K2O, Mg, Humusgehalt (kantonale Labore, LBU). Erweiterte Analyse: ' +
|
|
732
|
+
'Spatendiagnose (Bodenstruktur visuell beurteilen), Regenwurmzaehlung, Bodenatmung (CO2-Freisetzung), ' +
|
|
733
|
+
'Mykorrhiza-Besiedlung. FiBL-Bodenfruchtbarkeitsprojekt als Referenz.',
|
|
734
|
+
benefits:
|
|
735
|
+
'Grundlage fuer gezielte Duengungsplanung, Fruehwarnung bei Naehrstoffungleichgewichten, ' +
|
|
736
|
+
'Dokumentation des Humusaufbaus, Nachweis der Bodenverbesserung fuer Zertifizierung.',
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
topic: 'demeter_praeparate',
|
|
740
|
+
guidance:
|
|
741
|
+
'Die biodynamischen Praeparate (500-508) sind fuer Demeter-Betriebe obligatorisch. Sie zielen auf die Belebung ' +
|
|
742
|
+
'des Bodens und die Staerkung der Pflanzenkraefte. Anwendung in homoeopathischen Dosen.',
|
|
743
|
+
technique:
|
|
744
|
+
'Praeparat 500 (Hornmist): 100g/ha, 1 Stunde geruehrt, Ausbringung im Fruehjahr auf den Boden (Abend). ' +
|
|
745
|
+
'Praeparat 501 (Hornkiesel): 4g/ha, 1 Stunde geruehrt, Ausbringung morgens als feiner Nebel ueber die Pflanzen. ' +
|
|
746
|
+
'Praeparate 502-507: in den Kompost eingebracht. 508 (Schachtelhalm): als Tee gegen Pilzkrankheiten.',
|
|
747
|
+
benefits:
|
|
748
|
+
'Verbesserung der Bodenvitalitaet (500), Foerderung der Lichtaufnahme und Reifequalitaet (501), ' +
|
|
749
|
+
'Verbesserung der Kompostqualitaet (502-507), Praevention gegen Pilzdruck (508).',
|
|
750
|
+
},
|
|
751
|
+
];
|
|
752
|
+
|
|
753
|
+
const insertSoilHealth = db.instance.prepare(
|
|
754
|
+
`INSERT INTO soil_health (topic, guidance, technique, benefits, jurisdiction) VALUES (?, ?, ?, ?, 'CH')`
|
|
755
|
+
);
|
|
756
|
+
|
|
757
|
+
for (const s of soilHealthEntries) {
|
|
758
|
+
insertSoilHealth.run(s.topic, s.guidance, s.technique, s.benefits);
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
console.log(`Inserted ${soilHealthEntries.length} soil health entries`);
|
|
762
|
+
|
|
763
|
+
// ---------------------------------------------------------------------------
|
|
764
|
+
// 6. Certification Guidance — Zertifizierungsprozess
|
|
765
|
+
// Sources: bio.inspecta, Bio Test Agro, Bio Suisse
|
|
766
|
+
// ---------------------------------------------------------------------------
|
|
767
|
+
|
|
768
|
+
interface CertStep {
|
|
769
|
+
step: string;
|
|
770
|
+
description: string;
|
|
771
|
+
inspector: string | null;
|
|
772
|
+
frequency: string | null;
|
|
773
|
+
cost_notes: string | null;
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
const certSteps: CertStep[] = [
|
|
777
|
+
{
|
|
778
|
+
step: '1. Information und Entscheidung',
|
|
779
|
+
description:
|
|
780
|
+
'Informationsveranstaltungen besuchen (FiBL, Bio Suisse, AGRIDEA). Umstellungsrechner nutzen (AGRIDEA online). ' +
|
|
781
|
+
'Betriebsleitergespraeche mit bestehenden Bio-Betrieben. Kantonale Bio-Beratungsstelle kontaktieren.',
|
|
782
|
+
inspector: null,
|
|
783
|
+
frequency: null,
|
|
784
|
+
cost_notes: 'Erste Bio Suisse Beratung kostenlos. FiBL-Umstellungskurs ca. 300-500 CHF (3 Tage).',
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
step: '2. Anmeldung bei Kontrollstelle',
|
|
788
|
+
description:
|
|
789
|
+
'Anmeldung bei einer akkreditierten Kontrollstelle: bio.inspecta (groesste Stelle, ca. 60% der Bio-Betriebe) ' +
|
|
790
|
+
'oder Bio Test Agro. Kontrollvertrag abschliessen. Anmeldefrist: spaetestens bis zum gewuenschten Umstellungsbeginn.',
|
|
791
|
+
inspector: 'bio.inspecta oder Bio Test Agro',
|
|
792
|
+
frequency: null,
|
|
793
|
+
cost_notes: 'Anmeldegebuehr ca. 100-200 CHF. Kontrollvertrag abschliessen.',
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
step: '3. Anmeldung bei Bio Suisse (fuer Knospe)',
|
|
797
|
+
description:
|
|
798
|
+
'Zusaetzlich zur Kontrollstelle bei Bio Suisse als Mitglied anmelden (fuer Knospe-Berechtigung). ' +
|
|
799
|
+
'Mitgliedschaft ist Voraussetzung fuer den Knospe-Label. Regionale Bio-Organisation waehlen.',
|
|
800
|
+
inspector: null,
|
|
801
|
+
frequency: null,
|
|
802
|
+
cost_notes: 'Bio Suisse Mitgliederbeitrag: ca. 200-400 CHF/Jahr (abhaengig von Betriebsgroesse).',
|
|
803
|
+
},
|
|
804
|
+
{
|
|
805
|
+
step: '4. Umstellungsbeginn und erste Kontrolle',
|
|
806
|
+
description:
|
|
807
|
+
'Ab Umstellungsbeginn: Bewirtschaftung nach Bio-Richtlinien. Erste Kontrolle innerhalb der ersten Monate. ' +
|
|
808
|
+
'Prüfung: Betriebsbuchhaltung, Lagerhaltung, Flächennutzung, Tierhaltung, Pflanzenschutz, Düngung. ' +
|
|
809
|
+
'Maengelprotokoll mit Korrekturfristen.',
|
|
810
|
+
inspector: 'bio.inspecta oder Bio Test Agro',
|
|
811
|
+
frequency: 'Erstkontrolle im ersten Umstellungsjahr',
|
|
812
|
+
cost_notes: 'Kontrollkosten: ca. 600-1200 CHF/Jahr (abhaengig von Betriebsgroesse und -komplexitaet).',
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
step: '5. Jaehrliche Betriebskontrolle',
|
|
816
|
+
description:
|
|
817
|
+
'Jaehrliche angekuendigte Kontrolle durch akkreditierte Inspektoren. Pruefumfang: gesamter Betrieb ' +
|
|
818
|
+
'(Flaechen, Tiere, Lager, Buchhaltung, Zukauf). Kontrollbericht an Bio Suisse und Kanton. ' +
|
|
819
|
+
'Bei Verstoessen: Auflagen, Rueckstufung oder Aberkennung.',
|
|
820
|
+
inspector: 'bio.inspecta oder Bio Test Agro',
|
|
821
|
+
frequency: 'Jaehrlich (mindestens), unangekuendigte Zusatzkontrollen moeglich',
|
|
822
|
+
cost_notes: 'Im Kontrollvertrag enthalten (ca. 600-1200 CHF/Jahr).',
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
step: '6. Zusaetzliche Marktkontrollen',
|
|
826
|
+
description:
|
|
827
|
+
'Bio Suisse fuehrt zusaetzliche risiko-basierte Marktkontrollen durch: Stichproben auf Rueckstaende, ' +
|
|
828
|
+
'Warenflusskontrolle, GVO-Tests. Ziel: Schutz der Knospe-Integritaet.',
|
|
829
|
+
inspector: 'Bio Suisse (eigene Kontrollabteilung)',
|
|
830
|
+
frequency: 'Risikobasiert, unangekuendigt',
|
|
831
|
+
cost_notes: 'Keine separaten Kosten (durch Bio Suisse Mitgliederbeitrag gedeckt).',
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
step: '7. Zertifizierung und Labelnutzung',
|
|
835
|
+
description:
|
|
836
|
+
'Nach Abschluss der 2-jaehrigen (bzw. 3-jaehrigen) Umstellungszeit und bestandener Kontrolle: ' +
|
|
837
|
+
'Bio-Zertifikat wird ausgestellt. Knospe-Label darf verwendet werden. Vermarktung als Knospe-Produkt ' +
|
|
838
|
+
'ueber Bio Suisse Vermarktungskanaele (Coop, spar, Biolaeden, Direktvermarktung).',
|
|
839
|
+
inspector: 'bio.inspecta oder Bio Test Agro (Zertifikat)',
|
|
840
|
+
frequency: 'Jaehrliche Erneuerung (nach bestandener Kontrolle)',
|
|
841
|
+
cost_notes: 'Zertifikatsgebuehr im Kontrollvertrag enthalten.',
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
step: '8. Meldung an Kanton (Direktzahlungen)',
|
|
845
|
+
description:
|
|
846
|
+
'Bio-Betrieb im Agate-Portal erfassen fuer Bio-Beitrag (Direktzahlungen). Anmeldung im Februar/Maerz ' +
|
|
847
|
+
'des Beitragsjahres. Der Kanton prueft die Bio-Zertifizierung und bewilligt den Bio-Beitrag.',
|
|
848
|
+
inspector: null,
|
|
849
|
+
frequency: 'Jaehrlich (Agate-Anmeldung Februar/Maerz)',
|
|
850
|
+
cost_notes: 'Keine Kosten. Auszahlung Bio-Beitrag: November/Dezember.',
|
|
851
|
+
},
|
|
852
|
+
];
|
|
853
|
+
|
|
854
|
+
const insertCert = db.instance.prepare(
|
|
855
|
+
`INSERT INTO certification_guidance (step, description, inspector, frequency, cost_notes, jurisdiction) VALUES (?, ?, ?, ?, ?, 'CH')`
|
|
856
|
+
);
|
|
857
|
+
|
|
858
|
+
for (const c of certSteps) {
|
|
859
|
+
insertCert.run(c.step, c.description, c.inspector, c.frequency, c.cost_notes);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
console.log(`Inserted ${certSteps.length} certification guidance steps`);
|
|
863
|
+
|
|
864
|
+
// ---------------------------------------------------------------------------
|
|
865
|
+
// 7. FTS5 Search Index — Populate from all tables
|
|
866
|
+
// ---------------------------------------------------------------------------
|
|
867
|
+
|
|
868
|
+
console.log('Building FTS5 search index...');
|
|
869
|
+
|
|
870
|
+
// Organic standards
|
|
871
|
+
for (const s of organicStandards) {
|
|
872
|
+
db.run(
|
|
873
|
+
`INSERT INTO search_index (title, body, topic, jurisdiction) VALUES (?, ?, ?, 'CH')`,
|
|
874
|
+
[s.rule, s.description, `${s.production_type} — ${s.standard}`]
|
|
875
|
+
);
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
// Conversion requirements
|
|
879
|
+
for (const c of conversionReqs) {
|
|
880
|
+
db.run(
|
|
881
|
+
`INSERT INTO search_index (title, body, topic, jurisdiction) VALUES (?, ?, ?, 'CH')`,
|
|
882
|
+
[`Umstellung ${c.farm_type} (${c.current_system})`, `${c.requirements} ${c.support_measures}`, 'umstellung']
|
|
883
|
+
);
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
// Approved inputs
|
|
887
|
+
for (const inp of approvedInputs) {
|
|
888
|
+
db.run(
|
|
889
|
+
`INSERT INTO search_index (title, body, topic, jurisdiction) VALUES (?, ?, ?, 'CH')`,
|
|
890
|
+
[inp.product_name, `${inp.description} ${inp.restrictions}`, `betriebsmittel — ${inp.input_type}`]
|
|
891
|
+
);
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
// Organic subsidies
|
|
895
|
+
for (const s of organicSubsidies) {
|
|
896
|
+
db.run(
|
|
897
|
+
`INSERT INTO search_index (title, body, topic, jurisdiction) VALUES (?, ?, ?, 'CH')`,
|
|
898
|
+
[
|
|
899
|
+
`${s.subsidy_type}${s.zone ? ` (${s.zone})` : ''}: ${s.rate_chf_ha} CHF/ha`,
|
|
900
|
+
`${s.conditions} ${s.stacking_rules}`,
|
|
901
|
+
'bio_beitrag',
|
|
902
|
+
]
|
|
903
|
+
);
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
// Soil health
|
|
907
|
+
for (const s of soilHealthEntries) {
|
|
908
|
+
db.run(
|
|
909
|
+
`INSERT INTO search_index (title, body, topic, jurisdiction) VALUES (?, ?, ?, 'CH')`,
|
|
910
|
+
[s.topic, `${s.guidance} ${s.technique} ${s.benefits}`, 'bodenfruchtbarkeit']
|
|
911
|
+
);
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
// Certification
|
|
915
|
+
for (const c of certSteps) {
|
|
916
|
+
db.run(
|
|
917
|
+
`INSERT INTO search_index (title, body, topic, jurisdiction) VALUES (?, ?, ?, 'CH')`,
|
|
918
|
+
[c.step, `${c.description}${c.cost_notes ? ' ' + c.cost_notes : ''}`, 'zertifizierung']
|
|
919
|
+
);
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
console.log('FTS5 search index built');
|
|
923
|
+
|
|
924
|
+
// ---------------------------------------------------------------------------
|
|
925
|
+
// 8. Metadata
|
|
926
|
+
// ---------------------------------------------------------------------------
|
|
927
|
+
|
|
928
|
+
db.run(`INSERT OR REPLACE INTO db_metadata (key, value) VALUES ('last_ingest', ?)`, [now]);
|
|
929
|
+
db.run(`INSERT OR REPLACE INTO db_metadata (key, value) VALUES ('build_date', ?)`, [now]);
|
|
930
|
+
db.run(`INSERT OR REPLACE INTO db_metadata (key, value) VALUES ('schema_version', '1.0')`, []);
|
|
931
|
+
|
|
932
|
+
// ---------------------------------------------------------------------------
|
|
933
|
+
// 9. Coverage JSON
|
|
934
|
+
// ---------------------------------------------------------------------------
|
|
935
|
+
|
|
936
|
+
const coverage = {
|
|
937
|
+
server: 'ch-organic-regen-mcp',
|
|
938
|
+
jurisdiction: 'CH',
|
|
939
|
+
version: '0.1.0',
|
|
940
|
+
last_ingest: now,
|
|
941
|
+
data: {
|
|
942
|
+
organic_standards: organicStandards.length,
|
|
943
|
+
conversion_requirements: conversionReqs.length,
|
|
944
|
+
approved_inputs: approvedInputs.length,
|
|
945
|
+
organic_subsidies: organicSubsidies.length,
|
|
946
|
+
soil_health: soilHealthEntries.length,
|
|
947
|
+
certification_guidance: certSteps.length,
|
|
948
|
+
},
|
|
949
|
+
tools: 10,
|
|
950
|
+
sources: [
|
|
951
|
+
'Bio Suisse Richtlinien (Knospe)',
|
|
952
|
+
'Bio-Verordnung SR 910.18 (BLW)',
|
|
953
|
+
'FiBL Betriebsmittelliste',
|
|
954
|
+
'Demeter Schweiz Richtlinien',
|
|
955
|
+
'DZV Bio-Beitrag (BLW)',
|
|
956
|
+
],
|
|
957
|
+
};
|
|
958
|
+
|
|
959
|
+
writeFileSync('data/coverage.json', JSON.stringify(coverage, null, 2) + '\n');
|
|
960
|
+
console.log('Coverage JSON updated');
|
|
961
|
+
|
|
962
|
+
db.close();
|
|
963
|
+
console.log('Ingestion complete.');
|