CopyStart Manager – Proiectarea bazei de date
1. Scop
Acest document descrie modelul logic al datelor pentru aplicația CopyStart Manager.
În această etapă nu definim încă tabele SQL și nu scriem cod Laravel. Stabilim entitățile companiei, relațiile dintre ele, regulile de păstrare a istoricului și informațiile care trebuie gestionate.
2. Principii generale
- fiecare înregistrare va avea un ID intern unic;
- entitățile importante vor avea și un cod public ușor de identificat;
- informațiile istorice nu vor fi șterse;
- echipamentele retrase, contractele încheiate și utilizatorii dezactivați vor rămâne în istoric;
- modificările importante vor fi înregistrate în jurnalul de audit;
- documentele vor fi stocate privat, iar baza de date va păstra metadatele și legăturile lor;
- tarifele și regulile contractuale vor avea perioade de valabilitate;
- facturile și calculele istorice nu se vor modifica atunci când tarifele viitoare sunt actualizate;
- relațiile dintre clienți, locații, echipamente, tichete și citiri trebuie să poată fi urmărite complet.
3. Entități principale
- Utilizator
- Rol
- Permisiune
- Departament
- Zonă
- Client
- Locație
- Persoană de contact
- Echipament
- Model de echipament
- Istoric echipament
- Contract
- Plan tarifar
- Condiție contractuală specială
- Citire lunară
- Tichet
- Actualizare tichet
- Document
- Factură
- Linie de calcul
- Notificare
- Jurnal de audit
4. Relația generală dintre date
Client ├── Locații │ ├── Persoane de contact │ └── Echipamente │ ├── Citiri lunare │ ├── Tichete │ ├── Documente │ └── Istoric ├── Contracte │ ├── Planuri tarifare │ └── Condiții speciale └── Facturi └── Linii de calcul
5. Convenții preliminare pentru codurile publice
- Client:
CLI-000001 - Locație:
LOC-000001 - Echipament:
EQP-000001 - Tichet:
TIC-2026-000001 - Contract:
CTR-000001 - Factură internă:
FAC-2026-000001
Codurile publice nu vor înlocui ID-urile interne ale bazei de date. Ele vor fi folosite pentru căutare, comunicare și afișare în aplicație.
6. Reguli care trebuie clarificate
Pentru fiecare entitate vom stabili:
- ce reprezintă;
- câmpurile obligatorii;
- câmpurile opționale;
- relațiile cu alte entități;
- cine o poate crea sau modifica;
- dacă poate fi dezactivată;
- ce informații trebuie păstrate în istoric;
- ce validări sunt necesare;
- ce date vor fi importate din Excel sau Nextcloud.
7. Starea documentului
Document în lucru. Entitățile vor fi analizate și completate individual înainte de realizarea schemei SQL.
8. Entitatea Client
8.1. Rol
Clientul reprezintă persoana juridică sau organizația cu care Copy Start are o relație comercială.
Clientul nu trebuie confundat cu:
- locația sau punctul de lucru;
- persoana de contact;
- echipamentul instalat;
- contractul comercial;
- datele unei facturi individuale.
Un client poate avea mai multe locații, persoane de contact, echipamente și contracte.
8.2. Relații principale
Un client poate avea:
- una sau mai multe locații;
- zero sau mai multe persoane de contact;
- zero sau mai multe echipamente;
- unul sau mai multe contracte;
- zero sau mai multe tichete;
- zero sau mai multe facturi;
- documente și observații proprii.
8.3. Câmpuri preliminare
Identificare
- ID intern;
- cod public, de forma
CLI-000001; - denumire juridică;
- denumire comercială, dacă este diferită;
- cod fiscal/CUI;
- număr de înregistrare la Registrul Comerțului;
- tip client: persoană juridică, instituție publică sau alt tip;
- stare: prospect, activ, suspendat, reziliat sau arhivat.
Sediu social
- țară;
- județ;
- localitate;
- adresă;
- cod poștal.
Sediul social este o informație juridică și nu înlocuiește locațiile în care sunt instalate echipamentele.
Date generale de contact
- telefon general;
- adresă generală de e-mail;
- website;
- observații.
Datele persoanelor concrete vor fi păstrate separat în entitatea „Persoană de contact”.
Date de facturare
- denumire utilizată la facturare;
- CUI pentru facturare;
- adresă de facturare;
- e-mail pentru transmiterea facturilor;
- termen standard de plată;
- serie sau referință contractuală, dacă este necesară;
- observații pentru facturare.
Aceste informații vor fi analizate ulterior pentru a decide dacă rămân direct la client sau într-un profil separat de facturare.
Administrare
- data creării;
- utilizatorul care a creat clientul;
- data ultimei modificări;
- utilizatorul care a făcut ultima modificare;
- data activării;
- data suspendării sau rezilierii;
- motivul suspendării sau rezilierii;
- marcaj de arhivare.
8.4. Reguli preliminare
- codul public al clientului trebuie să fie unic;
- CUI-ul trebuie să fie unic atunci când este completat;
- același client nu trebuie creat de mai multe ori cu denumiri ușor diferite;
- un client cu istoric nu va fi șters fizic;
- clientul va putea fi dezactivat sau arhivat;
- rezilierea unui contract nu înseamnă automat ștergerea clientului;
- locațiile și echipamentele clientului vor fi gestionate separat;
- modificările datelor fiscale și ale stării clientului vor fi păstrate în jurnalul de audit.
8.5. Date ce pot fi importate din Excel
- denumirea clientului;
- CUI;
- adresa sediului social;
- județul și localitatea;
- datele de contact;
- e-mailul de facturare;
- termenul de plată;
- observațiile și condițiile comerciale existente.
Înaintea importului vor fi verificate duplicatele și diferențele de scriere ale denumirilor.
8.6. Aspecte rămase de clarificat
- dacă un client poate avea mai multe entități sau profiluri de facturare;
- dacă facturarea se poate face separat pentru fiecare punct de lucru;
- dacă un client poate avea simultan mai multe contracte active;
- dacă există clienți fără CUI, precum anumite organizații sau persoane fizice;
- dacă datele bancare ale clientului sunt necesare în aplicație;
- dacă fiecare client trebuie asociat unei zone sau unui responsabil comercial.
9. Entitatea Locație / Punct de lucru
9.1. Rol
Locația reprezintă punctul fizic în care clientul desfășoară activitate și unde pot fi instalate unul sau mai multe echipamente.
Locația nu trebuie confundată cu:
- sediul social al clientului;
- profilul de facturare;
- contractul-cadru;
- adresa afișată pe factură;
- persoana de contact.
Un client juridic poate avea una sau mai multe locații.
9.2. Relații principale
O locație aparține unui singur client juridic.
O locație poate avea:
- una sau mai multe persoane de contact;
- zero sau mai multe echipamente;
- zero sau mai multe tichete;
- zero sau mai multe documente;
- unul sau mai multe profiluri de facturare asociate în timp;
- o zonă tehnică responsabilă;
- unul sau mai mulți tehnicieni responsabili.
9.3. Câmpuri preliminare
Identificare
- ID intern;
- cod public, de forma
LOC-000001; - client juridic;
- denumire punct de lucru;
- cod intern al locației, dacă există;
- stare: activă, suspendată, închisă sau arhivată.
Adresă
- țară;
- județ;
- localitate;
- sat sau sector, dacă este cazul;
- stradă;
- număr;
- bloc;
- scară;
- etaj;
- apartament;
- cod poștal;
- adresă completă afișată;
- coordonate GPS, opțional.
Adresa va fi păstrată atât în câmpuri structurate, cât și într-o formă completă pentru afișare în documente și desfășurătoare.
Date operaționale
- program de lucru;
- instrucțiuni de acces;
- observații pentru tehnicieni;
- zonă tehnică;
- tehnician principal;
- tehnicieni secundari;
- persoană principală de contact;
- telefon general;
- e-mail general.
Facturare
- profil sau profiluri de facturare asociate;
- denumirea locației afișată pe factură;
- eligibilitate pentru facturare separată;
- observații comerciale;
- perioada de valabilitate a asocierii cu profilul de facturare.
Administrare
- data creării;
- utilizatorul care a creat locația;
- data ultimei modificări;
- utilizatorul care a făcut ultima modificare;
- data activării;
- data închiderii;
- motivul închiderii;
- marcaj de arhivare.
9.4. Reguli preliminare
- codul public al locației trebuie să fie unic;
- aceeași adresă poate găzdui mai multe locații distincte;
- locația nu va fi ștearsă fizic dacă are echipamente, tichete, citiri sau documente asociate;
- închiderea unei locații nu șterge istoricul echipamentelor;
- mutarea unui echipament între locații va fi înregistrată în istoricul echipamentului;
- schimbarea profilului de facturare trebuie să aibă dată de intrare în vigoare;
- locația poate fi inclusă într-o factură consolidată sau într-un profil de facturare separat;
- modificările adresei și ale stării vor fi păstrate în jurnalul de audit.
9.5. Date ce pot fi importate din Excel
- denumirea punctului de lucru;
- adresa echipamentului;
- județul;
- localitatea;
- zona tehnică;
- persoanele de contact;
- telefonul;
- e-mailul;
- denumirea utilizată pe factură;
- asocierea cu clientul și contractul;
- observațiile existente.
În timpul importului, adresele scrise diferit vor fi normalizate și verificate manual înainte de unificare.
9.6. Aspecte rămase de clarificat
- dacă aceeași locație poate avea mai multe departamente interne care trebuie diferențiate;
- dacă un echipament poate fi asociat temporar unei sublocații;
- dacă locațiile trebuie organizate ierarhic;
- dacă tehnicienii pot vedea doar locațiile din zona lor;
- dacă coordonatele GPS vor fi introduse manual sau generate din adresă;
- dacă există locații fără echipamente, dar cu tichete sau documente.