Agrobox Agronomist / Συμβούλους API

Agrobox Agronomist / Συμβούλους API

Αυτό το άρθρο γίνεται ανάλυση της δομής του API που προσφέρει την δυνατότητα αλληλεπήδρασης με την πλατφόρμα απο γεωπόνους / συμβούλους για την διαχείριση των αγροτών μέσα απ το δικό τους σύστημα πχ ERP/ CRM

 

 

Το κλείδι api ειναι διαθέσιμο ΜΟΝΟ στο πακέτο BUSSNESS ΓΕΩΠΟΝΩΝ/ ΣΥΜΒΟΥΛΩΝ

URL API: https://app.agrobox.gr/api.php

Μέθοδος αιτήματος: POST

Παράμετροι: HTTP QUERY

Απάντηση: JSON

Παράμετροι κλήσης API

 Παράμετρος Περιγραφή Απαιτείται Τύπος δεδομένων
Αρχική τιμή
key User API Key ναι αλφαριθμητικό  
user-request Agronomist Auth request ναι ακέραιος  Πάντα 1
task API action ναι αλφαριθμητικό  
data Update or add new data ναι (σε ενημέρωση ή προσθήκη) array  
filters Φίλτρα ανάκτησης οχι (σε ανάκτηση μόνο) array  
limit Μέγιστα αποτελέσματα ανα σελίδα οχι (σε ανάκτηση μόνο) ακέραιος 1 έως 200, προκαθορισμένη τιμή100
p Αριθμός σελίδας - Σελιδοποιήση οχι (σε ανάκτηση μόνο) ακέραιος 1

 

Tasks

 Τιμές task
 Περιγραφή
agronomist.getprofile Ανάκτηση προφίλ γεωπόνου
agronomist.updateprofile Ενημέρωση προφιλ γεωπόνου
agronomist.getfarmers Ανάκτηση προφιλ αγροτών
agronomist.addfarmer Ενημέρωση ή προσθήκη αγρότη
agronomist.deletefarmer Διαγραφή αγροτών
agronomist.getfields Ανάκτηση αγροτεμαχιών αγροτών μαζί με το ιστορικό των καλλιεργειών
agronomist.addfield Ενημέρωση ή προσθήκη αγροτεμαχίου
agronomist.getcrops Ανάκτηση καλλιεργιών που υποστηρίζει το AgroBox
agronomist.getvarieties Ανάκτηση ποικιλιών των καλλιεργιών
agronomist.getseasons Ανάκτηση καλλιεργητικών ετών
agronomist.getcares Ανάκτηση καλλιεργητικών εργασιών / φροντίδες
agronomist.getfieldcares Ανακτήση καλλιεργητικών εργασιών ανα αγροτεμάχιο
agronomist.getfertilizers Ανάκτηση λιπασμάτων
agronomist.getfytofarmaka Ανάκτηση φυτοπροασταευτικών σκευασμάτων
agronomist.addfieldcare Προσθήκη ή ενημέρωση φροντίδων
agronomist.deletefieldcare Διαγραφή φροντίδων
   
reseller.addaccount Σε πελάτες που μεταπωλούν τις υπηρεσίες μας υπάρχει δυνατόητα να ανοιγουν λογαριασμούς μέσω API.
reseller.getaccounts Ανακτηση πελατών και συνολικών εγγραφών

 

Δομή σώματος κλήσης / Body Request

key=USER_API_KEY&user-request=1&task=TASK_NAME

Παράδειγμα 1

Ανάκτηση δεδομένων προφιλ

key=abd123xxxxxxx&user-request=1&task=agronomist.getprofile

// JSON CODE
 0    1  {  2    "result": 1,  3    "data": {  4      "name": "ΣΥΜΒΟΥΛΟΣ",  5      "email": "geoponosDemo@agrobox.gr",  6      "mobile": "699999999999",  7      "username": "geoponos",  8      "published": "1",  9      "companyname": "Γεωπονος Εταιρεία ΚΥΔ",  10      "city": "ΒΟΛΟΣ",  11      "address": "ΓΑΖΗ 92Β",  12      "zip": "38333",  13      "state": "ΜΑΓΝΗΣΙΑ",  14      "country": "GR",  15      "verified_mobile": "0",  16      "verified_email": "0",  17      "vatid": "048313748",  18      "dailyemail": "0",  19      "serialkey": ""  20    }  21  } 

Ενημέρωση δεδομένων προφιλ

key=abd123xxxxxxx&user-request=1&task=agronomist.updateprofile&data[companyname]=My new company name&data[address]=My new address

 

REST API CLIENT (Firefox)

 

 

Στην ενημέρωση / προσθήκη εγγραφών υπάρχουν κάποιοι περιορισμοί στα πεδία που επιτρέπεται να αλλάξουν καθώς και στα πεδία κειμένου γίνεται αυτόματη περικοπή χαρακτήρων οταν υπερβαίνει το μέγιστο μέγεθος.

Στην ενημέρωση εγγραφών δεν είναι υποχρεωτικό να στέλνονται όλα τα πεδία, αλλα μόνο αυτά που αλλάζουν τιμή.

 

agronomist.getfarmers

key=abd123xxxxxxx&user-request=1&task=agronomist.getfarmers

Παράμετρος filters - Κριτήριο αναζήτσης και περιοσρισμός αποτελσμάτων

  1. id (ID αγρότη)
  2. email
  3. username
  4. vatid (ΑΦΜ)
  5. code (κωδικός - αυτο το πεδίο ειναι για δική σας χρηση πχ id αγρότη του ERP/CRM)
  6. osde_year (έτος ΟΣΔΕ)
key=abd123xxxxxxx&user-request=1&task=agronomist.getfarmers&filters[osde_year]=2023

 

agronomist.addfarmer

key=abd123xxxxxxx&user-request=1&task=agronomist.addfarmer&data[...]=..

Το "data" περιελαμβάνει όλα τα πεδία του αγρότη

Υποχρεωτικά πεδια για την νέα εισαγωγή αγρότη

  1. email (μοναδικο ανα χρήστη)
  2. vatid (ΑΦΜ) (μοναδικο ανα χρήστη)
  3. name (Ονοματεπώνυμο αγρότη)
  4. osde_year (έτος ΟΣΔΕ)

username εαν ειναι κενό το σύστημα θα παράξει μόνο του ένα username βάση το email και θα υπάρχει στην απάντηση του api
password εαν ειναι κενό το σύστημα θα παράξει έναν τυχαίο κωδικό και θα υπάρχει στην απάντηση του api

Για την ενημέρωση του προφιλ του αγρότη θα πρέπει να συμπεριλάβετε στο ερώτημα τις παραμέτρους updatekey και updatevalue.

To updatekey ειναι το κριτήριο εύρεσης της υπάρχουσας εγγραφής και μπορει να πάρει τις εξης τιμές:

  1. id (default)
  2. email
  3. username
  4. vatid (ΑΦΜ)

Προτείνεται να γίνεται πάντα με id, καθώς το email ή το vatid μπορεί να αλλάξει απο τον χρήστη.

key=abd123xxxxxxx&user-request=1&task=agronomist.addfarmer&updatekey=email&updatevalue=Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.&data[...]=..

 

agronomist.deletefarmer

Το "data" περιελαμβάνει όλα τα πεδία για την διαγραφή λογαριασμών αγροτών με id ή με vatid. Η διαγραφή θα διαγράψει ολα τα συσχετιζόμενα δεδομένα αγροτεμάχια, φροντίδες κτλ.

  • id (πίνακας με τα id που θέλετε να διαγραφούν)
  • vatid (ή πίνακας με τα ΑΦΜ που θέλετε να διαγραφούν)
key=abd123xxxxxxx&user-request=1&task=agronomist.deletefieldcare&data[id][0]=998&data[id][1]=999

ή

key=abd123xxxxxxx&user-request=1&task=agronomist.deletefieldcare&data[vatid][0]=048313749

agronomist.getfields

key=abd123xxxxxxx&user-request=1&task=agronomist.getfields

Παράμετρος filters - Κριτήριο αναζήτησης και περιοσρισμός αποτελσμάτων

  1. filters_cond (αποδεκτές τιμές AND ή OR, default: AND) Με AND θα πρέπει ολα φίλτρα να ικανοποιούνται
  2. id (ID χωραφιού)
  3. farmerid (ID αγρότη)
  4. vatid (ΑΦΜ αγρότη)
  5. osde_year (έτος ΟΣΔΕ)
  6. name
  7. status (0 ή 1)
  8. cropid (id καλλιέργειας)
  9. croplatestonly=1 (να επιστρέφει μονο για την τρέχουσα χρονιά αντι για όλο το ιστορικό)
  10. hide Αποκρυψη δεδομένων στην απάντηση χωρίστε με κόμμα πχ vertices,measures
  11. agro_group Ομάδα χωραφιού
  12. agro_view (0 ή 1) Εαν το παρακολουθεί ο συμβουλος ή οχι
  13. metra_cond (αποδεκτές τιμές AND ή OR, default: AND) Με AND θα πρέπει ολα μέτρα να ικανοποιούνται
  14. metra Πινακας με μέτρα *
key=abd123xxxxxxx&user-request=1&task=agronomist.getfields&filters[id]=198&croplatestonly=1

 * Το metra περιελαμβάνει αναζήτηση με όλα ή μερικά πεδια απ τα παρακάτω (προτείνεται κατ ελάχιστο να περιελαμβάνει το αίτημα τα πεδία type και measure ή code)

  • type (ecoschemes ή metro )
  • measure (ID μέτρου)
  • code (πχ 11.1.1)
  • osde (έτος όσδε)

 

Χρήση φίλτρων με μέτρα

key=abd123xxxxxxx&user-request=1&task=agronomist.getfields&croplatestonly=1&filters[metra_cond]=OR&filters[metra][0][type]=ecoschemes&filters[metra][0][measure]=35&filters[metra][0][type]=metro&filters[metra][0][code]=11.1.1

agronomist.addfield

key=abd123xxxxxxx&user-request=1&task=agronomist.addfarmer&data[...]=..

Το "data" περιελαμβάνει όλα τα πεδία του αγρότη

Υποχρεωτικά πεδια για την νέα εισαγωγή αγρότη

  1. farmerid (μοναδικο id αγρότη / χρήστη)
  2. name (Όνομασία χωραφιού)
  3. location (Τοποθεσία χωραφιού πχ Αλμυρός, Μαγνησία, 37100, GR)
  4. esga_vertices ή vertices (lat/lng)  (συντεταγμένες χωραφιού)
  5. crop_data (ιστορικό καλλιέργειας ανα χρονιά)
  6. ektasi (σε τμ) Εκταση ή area (σε εκτάρια) Εκταση
  7. osde_field_id (id χωραφιού απο το ΟΣΔΕ)
  8. osde_code (A/A χωραφιού απο το ΟΣΔΕ)
  9. osde_xarto_code (Χαρτογραφικός αριθμός απο το ΟΣΔΕ) πχ 496-514-4299-006- /752 /196-515-2102-005- 

esga_vertices περιλεμβάνει πολλαπλά set συντεγμένων σε ESGA 87 array(10000,20000). Μπορεί να ειναι σε array ή json
vertices περιλεμβάνει πολλαπλά set συντεγμένων στο διεθνές σύστημα array('lat'=>100000,'lng'=>200000). Μπορεί να ειναι σε array ή json

agro_view:  (0 ή 1) εαν θα εμφανίζεται στο διαχειριστικό του γεωπόνου
agro_group: Ομαδοποιήση χωραφιών για την καλυτερη διαχείριση από γεωπόνο / σύμβουλο

crop_data ειναι ένας πίνακας οπου περιέχει ένα ζέυγος καλλιεργητικής χρονιάς και τύπο καλλιέργειας

  1. seasonid (ή ενναλακτικά year)
  2. cropid (ή ενναλακτικά cropname - οπου croname πρέπει να ειναι ακριβώς όπως αναγράφεται στο agrobox)

Το έτος 2022 σημαίνει 2022-2023 καλλιεργητική χρονιά.
Το έτος 2023 σημαίνει 2023-2024 καλλιεργητική χρονιά
Κάθε καλλιέργεια δεν έχει την ίδια καλλιεργητική χρονιά την ίδια χρονική στιγμή, η χρονιά αλλάζει με την πρώτη συγκομιδή

Tip:

  • Τα seasonid μπορειτε να τα βρείτε απο το agronomist.getseasons
  • Τα cropid μπορειτε να τα βρείτε απο το agronomist.getcrops

// PHP CODE
 0  $data=array(  1  	'farmerid'=>12,  2  	'name'=>'ΚΑΡΑΓΚΑΝΙ',  3  	'location'=>'Επαρ.Οδ. Περίβλεπτου-Κοκκίνας, Περίβλεπτο 375 00, Ελλάδα'  4  	'vertices'=>'[{"lat":39.2842856777794,"lng":22.706592929751846},{"lat":39.28448497993258,"lng":22.70571316519496},{"lat":39.28350507221904,"lng":22.70571316519496},{"lat":39.28358811577729,"lng":22.70648564139125}]',  5  	'ektasi'=>6685,  6  	'crop_data'=>array(  7  		array('year'=>2022,'cropid'=>23),  8  		array('seasonid'=>9,'cropid'=>22),  9  	),  10  );  11  $data_string=http_build_query($data); 


Για ενημέρωση συμπληρώστε το &fieldid=XXX. Η ενημέρωση γίνεται μόνο σε ενεργά αγροτεμάχια (status=1)

 key=abd123xxxxxxx&user-request=1&task=agronomist.addfield&farmerid=12&fieldid=122&data[...]

agronomist.getcrops

key=abd123xxxxxxx&user-request=1&task=agronomist.getcrops

Επιστρέφει μια λίστα με id, ονομα καλλιέργειας και άλλες πληροφορίες. Αποθηκεύστε αυτά τα δεδομένα και ενημερώστε τα μια φορά καθε τόσο καθώς δεν αλλάζουν συχνά.

Filters:

  1. id
  2. osde_code
  3. state

 

agronomist.getvarieties

key=abd123xxxxxxx&user-request=1&task=agronomist.getvarieties

Επιστρέφει μια λίστα με id, ονομα καλλιέργειας και άλλες πληροφορίες. Αποθηκεύστε αυτά τα δεδομένα και ενημερώστε τα μια φορά καθε τόσο καθώς δεν αλλάζουν συχνά.

Filters:

  1. id
  2. osde_code
  3. cropid


agronomist.getseasons

key=abd123xxxxxxx&user-request=1&task=agronomist.getaseasons

Επιστρέφει μια λίστα με id, και έτος. Αποθηκεύστε αυτά τα δεδομένα και ενημερώστε τα μια φορά καθε τόσο καθώς δεν αλλάζουν συχνά.

 

agronomist.getcares

key=abd123xxxxxxx&user-request=1&task=agronomist.getcares

Επιστρέφει μια λίστα με τις καλλιεργητικές εργασίες / φροντίδων . Αποθηκεύστε αυτά τα δεδομένα και ενημερώστε τα μια φορά καθε τόσο καθώς δεν αλλάζουν συχνά.

 Filters:

  • id (id καλλιεργητικής φροντίδας)
  • cropid (id καλλιέργειας)

Παράδειγμα

 key=abd123xxxxxxx&user-request=1&task=agronomist.getcares&filters[cropid]=1

agronomist.getfertilizers

key=abd123xxxxxxx&user-request=1&task=agronomist.getfertilizers

Επιστρέφει μια λίστα με τα λιπάσματα . Αποθηκεύστε αυτά τα δεδομένα και ενημερώστε τα μια φορά καθε τόσο καθώς δεν αλλάζουν συχνά. Η μεταβλήτη filters μπορει να χρησιμοποιηθεί για φιλτράρισμα

Filters:

  1. id
  2. typos
  3. name
  4. company

agronomist.getfytofarmaka

key=abd123xxxxxxx&user-request=1&task=agronomist.getfytofarmaka

Επιστρέφει μια λίστα με τα φυτοπροστατευτικά σκευάσματα. Αποθηκεύστε αυτά τα δεδομένα και ενημερώστε τα μια φορά καθε τόσο καθώς δεν αλλάζουν συχνά. Η μεταβλήτη filters μπορει να χρησιμοποιηθεί για φιλτράρισμα

Filters:

  1. id
  2. cropid
  3. category
  4. typos
  5. typos2
  6. drastiki
  7. company
  8. country

agronomist.getfieldcares

Επιστρέφει μια λίστα με τις καλλιεργητικές εργασιών για τα αγροτεμάχια που ζητήθηκαν

  • fields (λίστα με id) (υποχρεωτικό 1)
  • farmers (λίστα με id) (υποχρεωτικό 1)
  • vatids (λίστα με ΑΦΜ) (υποχρεωτικό 1)
  • osde_year (έτος ΟΣΔΕ) (υποχρεωτικό 2)
  • cropid (id καλλιέργειας)
  • careid (id φροντίδας)
  • excludefarmers (0 ή 1) . Εξαιρέστε τις φροντίδες που έχει εισάγει ο αγρότης με τον λογαριασμό του

*1 ενα εκτων fields / farmers /vatids

Επεξήγηση πεδιών:

  • id (Το μοναδικό id καταχώρησης της φροντίδας)
  • fieldid (ID αγροτεμαχίου)
  • farnerid( ID αγρότη)
  • vatid (ΑΦΜ αγρότη)
  • seasonid (Το id της χρονιάς)
  • osde_year (Το έτος της χρονιάς)
  • added (Ημερομηνία εφαρμογής φροντίδας)
  • completed (0 ή 1, εαν έχει ολοκληρθεί, διαφορετικά το added αναφέρεται σε προγραμματισμό)
  • information (Παρατηρήσεις σημειώσεις για την φροντίδα)
  • workhours (Εργατοώρες)
  • cost_workers (Κόστος εργατικών σε Ευρώ)
  • cost_agro (Κόστος λίπανσης/ειδών σε Ευρώ)
  • cost_fuels (Κόστος κασυίμων ή ενέργειας σε Ευρώ)
  • total_cost (Συνολικό κόστος)
  • fytofarmako (ID φυτοφαρμάκου έφοσον η φροντίδα αφορά Φυτοπροστασία)
  • fertilizer (ID λιπάσματος έφοσον η φροντίδα αφορά λίπανση)
  • fertmeth (Μέθοδος λίπανσης)
  • stage (Σταδιο καλλιέργειας)
  • watering (Μέθοδος ποτίσματος)
  • waterhours (ώρες ποτίσματος)
  • qnt (Ποσότητα, ανάλογα τον τύπο της φροντίδας)
  • unit (μονάδα ποσότητας του πεδίου qnt)

Παράδειγμα:

key=abd123xxxxxxx&user-request=1&task=agronomist.getfieldcares&filters[fieldid][0]=111&filters[fieldid][1]=112

 

agronomist.addfieldcare

key=abd123xxxxxxx&user-request=1&task=agronomist.addfieldcare&data[...]=..

Το "data" περιελαμβάνει όλα τα πεδία της φροντίδας

Υποχρεωτικά πεδια για την νέα εισαγωγή φροντίδας είναι δυναμικά ανάλογα την φροντίδα που θα εισαγέται. Τα υποχρεωτικά πεδια ανεξαρτήτως φροντίδας ειναι

  1. fields  Πίνακας με τα id χωραφιών που θα εισαχθεί η φροντίδα
  2. osde_year (έτος ΟΣΔΕ)
  3. careid Το id της φροντίδας (δείτε το getcares)
  4. added (ημερομηνία εφαρμογής)

 

Υποχρεωτικά πεδια ανα τύπο φροντίδας

ΛΙΠΑΝΣΗ (groupid=1, δειτε το getcares)

  • stage
  • fertmeth
  • fertilizer
  • qnt (ποσότητα λιπάσματος)
  • unit

ΓΕΝΙΚΕΣ ΚΑΛ. ΕΡΓΑΣΙΕΣ (groupid=2, δειτε το getcares)

  • stage

ΑΡΔΕΥΣΗ (groupid=3, δειτε το getcares)

  • stage
  • watering
  • waterhours
  • qnt (πόσοτητα νερού)
  • unit

 ΦΥΤΟΠΡΟΣΤΑΣΙΑ (groupid=4, δειτε το getcares)

  • stage
  • weather
  • fytofarmako
  • qnt (Ποσότητα Σκευάσματος)
  • unit

Τιμές πεδιου unit:

  • ml (μλ)
  • lt (λιτρα)
  • gr (γραμμάρια)
  • kg (κιλά)
  • cube (m3)

Τιμές πεδιου stage:

  • 1 : Φύτευση
  • 2 : Βλαστική Ανάπτυξη φυτών
  • 3 : Άνθιση φυτών
  • 4 : Συγκομιδή

Τιμές πεδιου fertmeth:

  • 1 : Επιφανειακή λίπανση
  • 2 : Ενσωμάτωση στο έδαφος
  • 3 : Υδρολίπανση
  • 4 : Διαφυλλική λίπανση

Τιμές πεδιου watering:

  • 1 : Σταγόνες
  • 2 : Καρούλι / Κανόνι
  • 3 : Κατάκλιση

Τιμές πεδιου weather:

  • 1 : Συννεφιά
  • 2 : Ηλιοφάνεια
  • 3 : Ομίχλη
  • 4 : Βροχή
  • 5 : Χιόνι
  • 6 : Παγετός

 

agronomist.deletefieldcare

Το "data" περιελαμβάνει όλα τα πεδία για την διαγραφή φροντίδων

Τρόπος 1

  • id (πίνακας με τα id που θέλετε να διαγραφούν)

key=abd123xxxxxxx&user-request=1&task=agronomist.deletefieldcare&data[id][0]=5156&data[id][1]=5157

Τρόπος 2

  • fields (πίνακας με τα αγροτεμάχια id)
  • careid (id φροντίδας (απο getcares))
  • osde_year (έτος)

key=abd123xxxxxxx&user-request=1&task=agronomist.deletefieldcare&data[fields][0]=12&data[fields][1]=13&data[careid]=12&data[osde_year]=2023

Παράδειγμα σε PHP

// PHP CODE
 0    1  <?php  2  $api_url='https://app.agrobox.gr/api.php';  3  $api_key='xxxxxx';  4    5  //Προσθήκη χωραφιού στον αγρότη με ID:12  6  $query=array(  7  	'key'=>$api_key,  8  	'user-request'=>1,  9  	'task'=>'agronomist.addfield',  10  	'data'=>array(   11  		'farmerid'=>12,   12  		'name'=>'ΚΑΡΑΓΚΑΝΙ',   13  		'location'=>'Επαρ.Οδ. Περίβλεπτου-Κοκκίνας, Περίβλεπτο 375 00, Ελλάδα',   14  		'vertices'=>'[{"lat":39.2842856777794,"lng":22.706592929751846},{"lat":39.28448497993258,"lng":22.70571316519496},{"lat":39.28350507221904,"lng":22.70571316519496},{"lat":39.28358811577729,"lng":22.70648564139125}]',   15  		'ektasi'=>6685,   16  		'crop_data'=>array(   17  			array('year'=>2022,'cropid'=>23),   18  			array('seasonid'=>9,'cropid'=>22),   19  		),   20  	)  21  );  22    23  $response=senddata($api_url,$query);  24  echo $response;  25    26  //Τα χωράφια του αγρότη με ID:12  27  $query=array(  28  	'key'=>$api_key,  29  	'user-request'=>1,  30  	'task'=>'agronomist.getfields',  31  	'filters'=>array(   32  		'farmerid'=>12  33  	)  34  );  35    36  $response=senddata($api_url,$query)  37  echo $response;  38    39    40  function senddata($api_url,$query)  41  {  42  	$data_string=http_build_query($query);  43  	$ch = curl_init();  44  	curl_setopt($ch,CURLOPT_URL,$api_url);  45  	curl_setopt($ch,CURLOPT_POST, 1);  46  	curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string);  47  	curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);  48  	curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,15);  49  	curl_setopt($ch,CURLOPT_TIMEOUT, 25);  50  	$response = curl_exec($ch);  51  	curl_close ($ch);  52  	return $response;  53  }  54    55   

Σχετικα με το AgroΒox

Μία ιδέα, μία καινοτομία και μία αλλαγή κάθε φορά.

Το Agrobox βοηθά τους αγρότες,γεωπόνους και συμβούλους  να γίνουν πιο δυναμικοί, πιο εξελιγμένοι, πιο αποτελεσματικοί.

Αυτό φέρνει στην αγροτική επιστήμη, καινοτόμες στρατηγικές και υψηλές ψηφιακές τεχνολογίες για την επίλυση σύνθετων προβλημάτων με νέους τρόπους.

GsmBox

07 Σεπτεμβρίου 2021

Search