This project is a Parking Management System implemented using Django, a high-level Python web framework. The system provides APIs for managing customers, vehicles, plans, customer plans, contracts, and park movements.
Customer
Campo | Tipo | Descrição |
---|---|---|
id | AutoField | Chave Primária |
name | CharField | Máximo de 50 caracteres |
card_id | CharField | Máximo de 10 caracteres (nullable) |
Vehicle
Campo | Tipo | Descrição |
---|---|---|
id | AutoField | Chave Primária |
plate | CharField | Máximo de 10 caracteres |
model | CharField | Máximo de 30 caracteres (nullable) |
description | CharField | Máximo de 50 caracteres (nullable) |
customer_id | ForeignKey | Chave estrangeira para Customer (CASCADE, nullable) |
Plan
Campo | Tipo | Descrição |
---|---|---|
id | AutoField | Chave Primária |
description | CharField | Máximo de 50 caracteres |
value | FloatField |
CustomerPlan
Campo | Tipo | Descrição |
---|---|---|
id | AutoField | Chave Primária |
customer_id | ForeignKey | Chave estrangeira para Customer (CASCADE) |
plan_id | ForeignKey | Chave estrangeira para Plan (CASCADE) |
due_date | DateTimeField | (nullable) |
Contract
Campo | Tipo | Descrição |
---|---|---|
id | AutoField | Chave Primária |
description | CharField | Máximo de 50 caracteres |
max_value | FloatField (nullable) | |
rules | ManyToManyField | Muitos para Muitos com ContractRule (em branco) |
ContractRule
Campo | Tipo | Descrição |
---|---|---|
id | AutoField | Chave Primária |
contract_id | ForeignKey | Chave estrangeira para Contract (CASCADE) |
until | IntegerField | |
value | FloatField |
ParkMovement
Campo | Tipo | Descrição |
---|---|---|
id | AutoField | Chave Primária |
entry_date | DateTimeField | |
exit_date | DateTimeField (nullable) | |
vehicle_id | ForeignKey | Chave estrangeira para Vehicle (CASCADE, nullable) |
value | FloatField (nullable) |
Customer API
Vehicle API
Plan API
Customer Plan API
-
GET /api/v1/customerplan/: Get a list of all customer plans.
-
PUT /api/v1/customerplan/{id}/: Update customer plan details.
Contract API
Park Movement API
-
GET /api/v1/parkmovement/: Get a list of all park movements.
-
POST /api/v1/parkmovement/: Register a new park movement. Entrada de veiculo rotativo: Sainda de veiculo rotativo: Tentativa de entrar sendo que ja acusou entrada: Tentativa de entrar com cartão que ja esta no park Saida de mensalista:
Usage Clone the repository: git clone
Install the required dependencies
Apply migrations to create the database schema: python manage.py migrate
Run the development server:python manage.py runserver
Access the API endpoints at http://localhost:8000/api/v1/.