Modello di Operazioni del Canile per Cani
Operazioni del Canile per Soggiorni, Nutrizione, Controlli Sanitari e Note del Proprietario
Un backend di canile per cani pronto per la produzione su Back4app con tracciamento di SoggiornoCane, ProgrammaNutrizione, RegistroVaccinazione, e NotaContatto. Include diagramma ER, dizionario dei dati, schema JSON, sandbox API, e un prompt Agente AI per un rapido setup.
Punti chiave del kennel
Questo modello fornisce allo staff del kennel un backend per il pensionamento dei cani con tracciamento di <strong>SoggiornoDiPensione</strong>, <strong>ProgrammaDiNutrizione</strong>, <strong>RegistroVaccinazione</strong>, e <strong>NotaDiContatto</strong> affinché dettagli sull'accettazione, cura e ritiro siano organizzati.
- Controllo del soggiorno di pensione — Traccia ogni <strong>SoggiornoDiPensione</strong> con <strong>cane</strong>, <strong>checkInAt</strong>, <strong>checkOutAt</strong>, e <strong>status</strong> così i soggiorni attivi sono facili da rivedere.
- Controllo del programma di nutrizione — Utilizza i campi di <strong>ProgrammaDiNutrizione</strong> come <strong>oraPasto</strong>, <strong>tipoCibo</strong>, <strong>dimensionePorzione</strong>, e <strong>status</strong> per vedere quali pasti sono in attesa o serviti.
- Visibilità del registro delle vaccinazioni — Conserva le voci di <strong>RegistroVaccinazione</strong> con <strong>nomeVaccino</strong>, <strong>somministratoIl</strong>, <strong>scadeIl</strong>, e <strong>verificatoDa</strong> per decisioni di accettazione più sicure.
- Routing dei contatti del proprietario — Collega i record del <strong>cane</strong> ai dettagli del <strong>proprietario</strong> e del <strong>ContattoNota</strong> per note di ritiro, chiamate di emergenza e modifiche di programma.
- Responsabilità del personale del canile — Utilizza i campi <strong>Utente</strong> come <strong>nomeUtente</strong>, <strong>email</strong> e <strong>ruolo</strong> in modo che ogni alimentazione, verifica e nota abbia il giusto proprietario del personale.
Comprendere il Backend del Gestore del Canile per Cani in Pensione
La reportistica nel canile per cani in pensione dovrebbe rispondere alle domande della leadership senza una ricerca manuale tra cartelle e thread di messaggi. Piccole attese si accumulano rapidamente. Questo modello riproduce le entità core con accesso basato sui ruoli su Back4app in modo che ogni membro del team del canile possa vedere la parte del pipeline di cui è responsabile. Lo schema copre <strong>Utente</strong>, <strong>Proprietario</strong>, <strong>Cane</strong>, <strong>PermanenzaInPensione</strong>, <strong>ProgrammaDiAlimentazione</strong>, <strong>RegistroVaccinazioni</strong> e <strong>ContattoNota</strong> con autorizzazioni integrate focalizzate sul canile. Collega il tuo frontend preferito e gestisci il lavoro di pensione quotidiano da un backend.
Ideale per:
Panoramica del backend del canile per cani
Il canile per cani non riguarda solo la velocità; riguarda la difendibilità quando qualcuno chiede “mostrami come sapevi che era vero.”
Gli stakeholder possono controllare la validità del tracciamento del soggiorno in asilo, della pianificazione della programmazione dei pasti, della copertura delle recensioni dei registri delle vaccinazioni qui: nomi, relazioni e i flussi di lavoro che abilitano.
Moduli di dati del kennel
Ogni scheda tecnologica in questo hub utilizza lo stesso schema di backend del kennel con <strong>Utente</strong>, <strong>Proprietario</strong>, <strong>Cane</strong>, <strong>Permanenza</strong>, <strong>ProgrammaDiNutrizione</strong>, <strong>RecordVaccinazione</strong> e <strong>notaContatto</strong>.
Tracciamento soggiorni in pensione
<strong>BoardingStay</strong> memorizza <strong>dog</strong>, <strong>checkInAt</strong>, <strong>checkOutAt</strong>, <strong>status</strong> e <strong>kennelRun</strong>.
Pianificazione del programma di alimentazione
<strong>FeedingSchedule</strong> si collega a <strong>BoardingStay</strong> con <strong>mealTime</strong>, <strong>foodType</strong>, <strong>portionSize</strong> e <strong>fedBy</strong>.
Revisioni del record di vaccinazione
<strong>VaccinationRecord</strong> cattura <strong>vaccineName</strong>, <strong>administeredOn</strong>, <strong>expiresOn</strong>, <strong>clinicName</strong> e <strong>verifiedBy</strong>.
Gestione contatti del proprietario
<strong>Owner</strong> memorizza <strong>fullName</strong>, <strong>primaryPhone</strong>, <strong>email</strong> e <strong>preferredContactMethod</strong>.
Storia delle note di contatto
<strong>ContactNote</strong> memorizza <strong>owner</strong>, <strong>dog</strong>, <strong>author</strong>, <strong>subject</strong> e <strong>contactType</strong>.
Perché costruire il backend del tuo kennel per cani con Back4app?
Back4app ti offre classi pronte per il kennel per <strong>BoardingStay</strong>, <strong>FeedingSchedule</strong> e <strong>VaccinationRecord</strong> in modo che il personale trascorra meno tempo a riconciliare appunti e più tempo a prendersi cura dei cani.
- •BoardingStay e FeedingSchedule in un unico posto: Interroga <strong>BoardingStay</strong> e <strong>FeedingSchedule</strong> insieme per vedere quale <strong>Dog</strong> mangia per primo, quale <strong>mealTime</strong> è dovuto e quale <strong>User</strong> lo ha registrato.
- •Controlli del VaccinationRecord prima dell'accettazione: Utilizza i campi di <strong>VaccinationRecord</strong> come <strong>vaccineName</strong>, <strong>administeredOn</strong>, <strong>expiresOn</strong> e <strong>verifiedBy</strong> per confermare lo stato di salute prima che un cane entri nel kennel.
- •Ricerca contatto del proprietario durante i turni occupati: Mantieni il telefono e l'email del <strong>Owner</strong> collegati al <strong>Dog</strong> in modo che le domande sul ritiro e le chiamate di emergenza siano rapide da risolvere.
Costruisci le operazioni del kennel attorno a classi e campi chiari invece di fogli di calcolo sparsi e appunti cartacei.
Vantaggi del kennel
Un backend per il kennel che mantiene allineati i dettagli riguardanti la nutrizione, la salute e i contatti attraverso i turni.
Accettazione e check-out più rapidi
Utilizza <strong>Permanenza</strong> e <strong>Cane</strong> insieme in modo che la reception possa confermare arrivi, partenze e assegnazioni correnti senza dover setacciare registri cartacei.
Gestione dei pasti accurata
<strong>ProgrammaDiNutrizione</strong> campi come <strong>oraPasto</strong>, <strong>tipoCibo</strong>, e <strong>dimensionePorzione</strong> aiutano il personale a preparare il cibo giusto al momento giusto.
Controlli della salute facili da esaminare
<strong>RecordVaccinazione</strong> voci rendono semplice verificare <strong>nomeVaccino</strong>, <strong>dataSomministrazione</strong>, <strong>dataScadenza</strong> e <strong>verificatoDa</strong> prima che un cane entri nel kennel.
Comunicazione con il proprietario che rimane aggiornata
I dati del <strong>Proprietario</strong> e del <strong>ContattoNote</strong> mantengono telefono, email e storia dei contatti a portata di mano per cambiamenti di programma, domande e contatti di emergenza.
Passaggi di staff puliti
I registri <strong>Utente</strong> e lo stato <strong>BoardingStay</strong> aiutano un turno a vedere cosa è già stato registrato dal turno precedente.
Impostazione della pensione assistita dall'IA
Genera le tue classi iniziali, permessi e flussi API per la pensione dei cani con un solo prompt strutturato.
Pronto a lanciare il backend del tuo gestore di pensione?
Lascia che l'agente IA di Back4app crei la struttura del tuo backend per la pensione e generi flussi di lavoro per la pensione, l'alimentazione, le vaccinazioni e il contatto con il proprietario da un solo prompt.
Gratis per iniziare — 50 suggerimenti per agenti AI/mese, senza necessità di carta di credito
Stack Tecnologico per Canili
Tutto incluso in questo modello di backend per canili.
Diagramma ER del Kennel
Modello di relazione tra entità per lo schema backend del canile per cani.
Schema che copre utenti del canile, proprietari, cani, soggiorni in pensione, programmi di alimentazione, record di vaccinazione e note di contatto.
Visualizza sorgente del diagramma
erDiagram
User ||--o{ BoardingStay : "coordinates"
User ||--o{ FeedingSchedule : "feeds"
User ||--o{ VaccinationRecord : "verifies"
User ||--o{ ContactNote : "authors"
Owner ||--o{ Dog : "owns"
Owner ||--o{ ContactNote : "receives"
Dog ||--o{ BoardingStay : "books"
Dog ||--o{ FeedingSchedule : "needs"
Dog ||--o{ VaccinationRecord : "has"
Dog ||--o{ ContactNote : "is about"
BoardingStay ||--o{ FeedingSchedule : "includes"
User {
String objectId PK
String username
String email
String password
String role
Date createdAt
Date updatedAt
}
Owner {
String objectId PK
String fullName
String primaryPhone
String email
String preferredContactMethod
String notes
Date createdAt
Date updatedAt
}
Dog {
String objectId PK
String name
String breed
Date dob
Number weightKg
String temperamentNotes
String ownerId FK
Date createdAt
Date updatedAt
}
BoardingStay {
String objectId PK
String dogId FK
Date checkInAt
Date checkOutAt
String status
String kennelRun
String specialInstructions
Date createdAt
Date updatedAt
}
FeedingSchedule {
String objectId PK
String boardingStayId FK
Date mealTime
String foodType
String portionSize
String fedById FK
String status
String notes
Date createdAt
Date updatedAt
}
VaccinationRecord {
String objectId PK
String dogId FK
String vaccineName
Date administeredOn
Date expiresOn
String clinicName
String proofUrl
String verifiedById FK
Date createdAt
Date updatedAt
}
ContactNote {
String objectId PK
String ownerId FK
String dogId FK
String authorId FK
String subject
String message
String contactType
Date followUpAt
Date createdAt
Date updatedAt
}
Flusso dell'app Canile
Flusso di esecuzione tipico per autenticazione, ingresso in pensione, aggiornamenti del programma di alimentazione, controlli di vaccinazione e ricerca di contatti del proprietario.
Visualizza sorgente del diagramma
sequenceDiagram
participant User
participant App as Dog Boarding Kennel Manager App
participant Back4app as Back4app Cloud
User->>App: Sign in to the kennel dashboard
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Open today's boarding stays
App->>Back4app: GET /classes/BoardingStay?include=dog.owner&order=checkInAt
Back4app-->>App: BoardingStay list with Dog and Owner pointers
User->>App: Mark a feeding as served
App->>Back4app: POST /classes/FeedingSchedule
Back4app-->>App: FeedingSchedule objectId
User->>App: Verify vaccination paperwork
App->>Back4app: GET /classes/VaccinationRecord?include=dog
Back4app-->>App: VaccinationRecord rows
User->>App: Add an owner contact note
App->>Back4app: POST /classes/ContactNote
Back4app-->>App: ContactNote savedGuida del Campo
Riferimento completo a livello di campo per ogni classe nello schema del canile.
| Campo | Tipo | Descrizione | Richiesto |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Automatico |
| username | String | Login name for kennel staff | |
| String | Staff email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Staff role such as admin, manager, or attendant | |
| createdAt | Date | Auto-generated creation timestamp | Automatico |
| updatedAt | Date | Auto-generated last-update timestamp | Automatico |
7 campi in User
Sicurezza e Permessi del Canile
Come la strategia ACL e CLP protegge il personale del canile, i cani, le soste in kennel e i dati di contatto dei proprietari.
Modifica limitata allo staff
Solo gli account <strong>Utente</strong> autenticati con il giusto <strong>ruolo</strong> possono creare o aggiornare le voci di <strong>BoardingStay</strong>, <strong>FeedingSchedule</strong> e <strong>VaccinationRecord</strong>.
Privacy dei contatti del proprietario
I campi <strong>Proprietario</strong> come <strong>primaryPhone</strong> e <strong>email</strong> dovrebbero essere leggibili solo dallo staff che ne ha bisogno per le operazioni di imbarco.
Controllo del registro sanitario
Usa il Cloud Code per convalidare gli aggiornamenti del <strong>VaccinationRecord</strong> prima che un cane possa essere contrassegnato come pronto per l'imbarco.
Schema JSON
Definizione dello schema JSON grezzo pronta per essere copiata in Back4app o utilizzata come riferimento all'implementazione.
{
"classes": [
{
"className": "User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Owner",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"fullName": {
"type": "String",
"required": true
},
"primaryPhone": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"preferredContactMethod": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Dog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"breed": {
"type": "String",
"required": true
},
"dob": {
"type": "Date",
"required": false
},
"weightKg": {
"type": "Number",
"required": false
},
"temperamentNotes": {
"type": "String",
"required": false
},
"owner": {
"type": "Pointer",
"required": true,
"targetClass": "Owner"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "BoardingStay",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"dog": {
"type": "Pointer",
"required": true,
"targetClass": "Dog"
},
"checkInAt": {
"type": "Date",
"required": true
},
"checkOutAt": {
"type": "Date",
"required": false
},
"status": {
"type": "String",
"required": true
},
"kennelRun": {
"type": "String",
"required": false
},
"specialInstructions": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "FeedingSchedule",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"boardingStay": {
"type": "Pointer",
"required": true,
"targetClass": "BoardingStay"
},
"mealTime": {
"type": "Date",
"required": true
},
"foodType": {
"type": "String",
"required": true
},
"portionSize": {
"type": "String",
"required": true
},
"fedBy": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"status": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "VaccinationRecord",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"dog": {
"type": "Pointer",
"required": true,
"targetClass": "Dog"
},
"vaccineName": {
"type": "String",
"required": true
},
"administeredOn": {
"type": "Date",
"required": true
},
"expiresOn": {
"type": "Date",
"required": false
},
"clinicName": {
"type": "String",
"required": false
},
"proofUrl": {
"type": "String",
"required": false
},
"verifiedBy": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ContactNote",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"owner": {
"type": "Pointer",
"required": true,
"targetClass": "Owner"
},
"dog": {
"type": "Pointer",
"required": false,
"targetClass": "Dog"
},
"author": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"subject": {
"type": "String",
"required": true
},
"message": {
"type": "String",
"required": true
},
"contactType": {
"type": "String",
"required": true
},
"followUpAt": {
"type": "Date",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Costruisci con AI Agent
Usa l'agente AI di Back4app per generare un'app reale per un canile da pensione da questo template, inclusi frontend, backend, autenticazione e flussi di pensione, alimentazione, vaccinazione e contatto con i proprietari.
Crea un backend sicuro per la gestione di un canile da pensione su Back4app con questo schema e comportamento esatti. Schema: 1. Utente (usa il built-in di Back4app): nome utente, email, password, ruolo; objectId, createdAt, updatedAt (sistema). 2. Proprietario: nomeCompleto (Stringa, obbligatorio), telefonoPrimario (Stringa, obbligatorio), email (Stringa, obbligatoria), metodoContattoPreferito (Stringa, obbligatorio), note (Stringa, facoltativo); objectId, createdAt, updatedAt (sistema). 3. Cane: nome (Stringa, obbligatoria), razza (Stringa, obbligatoria), data di nascita (Data, facoltativa), pesoKg (Numero, facoltativo), noteTemperamento (Stringa, facoltativa), proprietario (Puntatore a Proprietario, obbligatorio); objectId, createdAt, updatedAt (sistema). 4. SoggiornoDiPensione: cane (Puntatore a Cane, obbligatorio), checkInAt (Data, obbligatoria), checkOutAt (Data, facoltativa), stato (Stringa, obbligatoria), corsaCanile (Stringa, facoltativa), istruzioniSpeciali (Stringa, facoltativa); objectId, createdAt, updatedAt (sistema). 5. PianoAlimentazione: soggiornoDiPensione (Puntatore a SoggiornoDiPensione, obbligatorio), orarioPasto (Data, obbligatoria), tipoCibo (Stringa, obbligatoria), dimensionePorzione (Stringa, obbligatoria), alimentatoDa (Puntatore a Utente, facoltativo), stato (Stringa, obbligatoria), note (Stringa, facoltativa); objectId, createdAt, updatedAt (sistema). 6. RecordVaccinazione: cane (Puntatore a Cane, obbligatorio), nomeVaccino (Stringa, obbligatoria), somministratoIl (Data, obbligatoria), scadeIl (Data, facoltativa), nomeClinica (Stringa, facoltativa), urlProva (Stringa, facoltativa), verificatoDa (Puntatore a Utente, facoltativo); objectId, createdAt, updatedAt (sistema). 7. NotaContatto: proprietario (Puntatore a Proprietario, obbligatorio), cane (Puntatore a Cane, facoltativo), autore (Puntatore a Utente, obbligatorio), oggetto (Stringa, obbligatoria), messaggio (Stringa, obbligatoria), tipoContatto (Stringa, obbligatoria), followUpAt (Data, facoltativa); objectId, createdAt, updatedAt (sistema). Sicurezza: - I manager e gli assistenti possono leggere e aggiornare le righe di SoggiornoDiPensione attive. - Le righe del PianoAlimentazione devono essere scrivibili dal personale ma legate alla sessione attuale tramite alimentatoDa quando segnate come servito. - RecordVaccinazione deve essere di sola lettura per la maggior parte del personale, con verificatoDa impostato quando un record è esaminato. - I dettagli di contatto del proprietario e la cronologia delle Note di Contatto devono essere visibili solo al personale del canile autenticato. Autenticazione: - Registrazione, accesso, disconnessione. Comportamento: - Elencare i soggiorni di pensione con inclusioni di Cane e Proprietario. - Creare piani alimentazione e marcarli come serviti o saltati. - Verificare i record vaccinazione prima del check-in. - Aggiungere note di contatto proprietario con promemoria di follow-up. Consegna: - App Back4app con schema, CLP, ACL e un cruscotto canile per piani di alimentazione, registri vaccinazione, contatti proprietari e soggiorni di pensione.
Premi il pulsante qui sotto per aprire l'agente con questo prompt del template già compilato.
Questo è il prompt di base senza un suffisso tecnologico. Puoi adattare successivamente lo stack frontend generato.
API Sandbox
Prova gli endpoint REST e GraphQL contro lo schema del kennel. Le risposte utilizzano dati fittizi e non richiedono un account Back4app.
Utilizza lo stesso schema di questo template.
Scegli la tua tecnologia
Espandi ogni scheda per vedere come integrare Owner, Dog e BoardingStay con il tuo stack scelto.
Flutter Pensione per cani Backend
React Pensione per cani Backend
React Nativo Pensione per cani Backend
Next.js Pensione per cani Backend
JavaScript Pensione per cani Backend
Android Pensione per cani Backend
iOS Pensione per cani Backend
Vue Pensione per cani Backend
Angular Pensione per cani Backend
GraphQL Pensione per cani Backend
REST API Pensione per cani Backend
PHP Pensione per cani Backend
.NET Pensione per cani Backend
Cosa ottieni con ogni tecnologia
Ogni stack utilizza lo stesso schema backend per canili e contratti API.
Struttura dati unificata per canili
Gestisci facilmente <strong>Utente</strong>, <strong>Proprietario</strong>, <strong>Cane</strong>, <strong>PermanenzaInAllevamento</strong>, <strong>ProgrammaPasti</strong>, <strong>RegistroVaccinazione</strong> e <strong>NotaContatto</strong> con uno schema coerente.
Monitoraggio dell'alimentazione e delle cure per gli allevamenti
Registra <strong>oraDelPasto</strong>, <strong>tipoDiCibo</strong> e <strong>dimensionePorzione</strong> per ogni <strong>PermanenzaInAllevamento</strong> senza appunti sparsi.
Controlli di vaccinazione per l'ingresso in allevamento
Utilizza i campi <strong>RegistroVaccinazione</strong> per rivedere <strong>nomeVaccino</strong>, <strong>somministratoIl</strong>, <strong>scadeIl</strong> e <strong>verificatoDa</strong> prima del check-in.
Ricerca contatti del proprietario durante i turni
Tieni a portata di mano il telefono e l'email del <strong>Proprietario</strong> affinché il personale possa gestire aggiornamenti e ritiri rapidamente.
Confronto tecnologico per la pensione dei cani
Confronta la velocità di configurazione, lo stile SDK e il supporto AI tra tutte le tecnologie supportate.
| Framework | Tempo di configurazione | Beneficio del canile | Tipo di SDK | Supporto AI |
|---|---|---|---|---|
| Circa 5 minuti | Codice sorgente unico per il personale del kennel su mobile e web. | SDK tipizzato | Completo | |
| Meno di 5 minuti | Dashboard web veloce per l'ammissione e la nutrizione del kennel. | SDK tipizzato | Completo | |
| ~3–7 min | App mobile multipiattaforma per i turni del kennel. | SDK tipizzato | Completo | |
| Impostazione rapida (5 min) | App web renderizzata dal server per le operazioni del kennel. | SDK tipizzato | Completo | |
| ~3–5 min | Integrazione web leggera per i team di kennel. | SDK digitato | Completo | |
| Circa 5 min | App nativa Android per il personale del kennel. | SDK digitato | Completo | |
| Meno di 5 minuti | App nativa iOS per il personale del kennel. | SDK digitato | Completo | |
| ~3–7 min | Interfaccia web React per i cruscotti dei canili. | SDK Digitale | Completo | |
| Impostazione rapida (5 min) | Applicazione web per aziende per i gestori di canili. | SDK Digitale | Completo | |
| Meno di 2 min | API flessibile GraphQL per le operazioni dei canili. | API GraphQL | Completo | |
| Impostazione rapida (2 min) | integrazione REST API per flussi di lavoro del canile. | REST API | Completo | |
| ~3 min | Backend PHP lato server per portali del canile. | REST API | Completo | |
| ~3–7 min | backend .NET per operazioni del canile. | SDK tipizzato | Completo |
Il tempo di configurazione riflette la durata prevista dal bootstrap del progetto alla prima query del profilo del cane o del programma di alimentazione utilizzando questo schema di template.
Domande sul canile
Domande comuni sulla costruzione di un backend per un canile di soggiorno per cani con questo modello.
Pronto a costruire il tuo gestore di canili per cani?
Inizia il tuo progetto di allevamento in pochi minuti. Nessuna carta di credito richiesta.