# ramosmilady049-afk/sarai-ramos architecture

> Architecture diagram of the GitHub repository ramosmilady049-afk/sarai-ramos, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ramosmilady049-afk/sarai-ramos
- Repository: https://github.com/ramosmilady049-afk/sarai-ramos

## Overview

Pet Shop is a Java domain model for customer, pet-care, retail, payment, and inventory management. The README describes a sale from product lookup and stock verification through payment, sale recording, and stock deduction, as well as appointment lifecycle states. The available classes are mostly data fields and empty method stubs, so this graph represents documented domain associations rather than executable call flow; no application-level orchestrator or persistence layer is shown.

Main entry points: [`src/petshop/model/Venta.java`](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Venta.java) (Sale), [`src/petshop/model/Cita.java`](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Cita.java) (Appointment), [`src/petshop/model/Producto.java`](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Producto.java) (Product), [`src/petshop/model/Cliente.java`](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Cliente.java) (Customer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_care["Customers and care"]
  node_client["Customer<br/>[Cliente.java]"]
  node_pet["Pet<br/>[Mascota.java]"]
  node_appointment["Appointment<br/>[Cita.java]"]
  node_service["Service<br/>[Servicio.java]"]
  node_employee["Employee<br/>[Empleado.java]"]
end

subgraph group_sales["Sales and payments"]
  node_sale["Sale<br/>[Venta.java]"]
  node_line["Sale detail<br/>[DetalleVenta.java]"]
  node_payment["Payment<br/>[Pago.java]"]
end

subgraph group_stock["Catalog and inventory"]
  node_product["Product<br/>[Producto.java]"]
  node_supplier["Supplier<br/>[Proveedor.java]"]
  node_inventory["Inventory movement<br/>[Inventario.java]"]
end

node_client -->|"owns"| node_pet
node_pet -->|"has appointments"| node_appointment
node_employee -->|"handles"| node_appointment
node_appointment -->|"includes"| node_service
node_client -->|"makes"| node_sale
node_employee -->|"handles"| node_sale
node_sale -->|"contains"| node_line
node_line -->|"references"| node_product
node_sale -->|"has payments"| node_payment
node_supplier -->|"supplies"| node_product
node_product -->|"has movements"| node_inventory

click node_client "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Cliente.java"
click node_pet "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Mascota.java"
click node_appointment "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Cita.java"
click node_service "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Servicio.java"
click node_employee "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Empleado.java"
click node_sale "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Venta.java"
click node_line "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/DetalleVenta.java"
click node_payment "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Pago.java"
click node_product "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Producto.java"
click node_supplier "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Proveedor.java"
click node_inventory "https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Inventario.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_client,node_pet,node_appointment,node_service,node_employee toneBlue
class node_sale,node_line,node_payment toneAmber
class node_product,node_supplier,node_inventory toneMint
```

## Components

### Customers and care

- [Customer](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Cliente.java): `src/petshop/model/Cliente.java`
- [Pet](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Mascota.java): `src/petshop/model/Mascota.java`
- [Appointment](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Cita.java): `src/petshop/model/Cita.java`
- [Service](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Servicio.java): `src/petshop/model/Servicio.java`
- [Employee](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Empleado.java): `src/petshop/model/Empleado.java`

### Sales and payments

- [Sale](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Venta.java): `src/petshop/model/Venta.java`
- [Sale detail](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/DetalleVenta.java): `src/petshop/model/DetalleVenta.java`
- [Payment](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Pago.java): `src/petshop/model/Pago.java`

### Catalog and inventory

- [Product](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Producto.java): `src/petshop/model/Producto.java`
- [Supplier](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Proveedor.java): `src/petshop/model/Proveedor.java`
- [Inventory movement](https://github.com/ramosmilady049-afk/sarai-ramos/blob/main/src/petshop/model/Inventario.java): `src/petshop/model/Inventario.java`

## Connections

- Customer → Pet: owns (evidence: `README.md`)
- Pet → Appointment: has appointments (evidence: `README.md`)
- Employee → Appointment: handles (evidence: `README.md`)
- Appointment → Service: includes (evidence: `README.md`)
- Customer → Sale: makes (evidence: `README.md`)
- Employee → Sale: handles (evidence: `README.md`)
- Sale → Sale detail: contains (evidence: `README.md`)
- Sale detail → Product: references (evidence: `README.md`)
- Sale → Payment: has payments (evidence: `README.md`)
- Supplier → Product: supplies (evidence: `README.md`)
- Product → Inventory movement: has movements (evidence: `README.md`)
