libreria-cafe-edd-db 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. libreria_cafe_edd_db-1.0.0/PKG-INFO +11 -0
  2. libreria_cafe_edd_db-1.0.0/pyproject.toml +26 -0
  3. libreria_cafe_edd_db-1.0.0/setup.cfg +4 -0
  4. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/__init__.py +32 -0
  5. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/base.py +3 -0
  6. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/cliente.py +33 -0
  7. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/consumo_cafe.py +18 -0
  8. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/consumo_libro.py +20 -0
  9. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/detalles_reposicion.py +20 -0
  10. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/enum/metodo_pago.py +9 -0
  11. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/enum/tipo_venta.py +5 -0
  12. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/factura.py +26 -0
  13. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/libro.py +20 -0
  14. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/membresia.py +22 -0
  15. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/orden_reposicion.py +24 -0
  16. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/proveedor.py +19 -0
  17. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/recomendacion_libro.py +20 -0
  18. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/modelos/venta.py +21 -0
  19. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/py.typed +0 -0
  20. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db/sesion.py +18 -0
  21. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db.egg-info/PKG-INFO +11 -0
  22. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db.egg-info/SOURCES.txt +23 -0
  23. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db.egg-info/dependency_links.txt +1 -0
  24. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db.egg-info/requires.txt +1 -0
  25. libreria_cafe_edd_db-1.0.0/src/libreria_cafe_edd_db.egg-info/top_level.txt +1 -0
@@ -0,0 +1,11 @@
1
+ Metadata-Version: 2.4
2
+ Name: libreria-cafe-edd-db
3
+ Version: 1.0.0
4
+ Summary: Librería para manejar una base de datos relacional SQLite entre todos los módulos del proyecto final de Estructuras de Datos de manera consistente.
5
+ Author: justcarlux
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/justcarlux/libreria-cafe-edd-db
8
+ Project-URL: Repository, https://github.com/justcarlux/libreria-cafe-edd-db
9
+ Requires-Python: >=3.10
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: sqlalchemy>=2.0.0
@@ -0,0 +1,26 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "libreria-cafe-edd-db"
7
+ version = "1.0.0"
8
+ description = "Librería para manejar una base de datos relacional SQLite entre todos los módulos del proyecto final de Estructuras de Datos de manera consistente."
9
+ authors = [{ name = "justcarlux" }]
10
+ license = "MIT"
11
+ readme = "README.md"
12
+ requires-python = ">=3.10"
13
+ dependencies = ["sqlalchemy>=2.0.0"]
14
+
15
+ [project.urls]
16
+ Homepage = "https://github.com/justcarlux/libreria-cafe-edd-db"
17
+ Repository = "https://github.com/justcarlux/libreria-cafe-edd-db"
18
+
19
+ [tool.setuptools]
20
+ package-dir = { "" = "src" }
21
+
22
+ [tool.setuptools.packages.find]
23
+ where = ["src"]
24
+
25
+ [tool.setuptools.package-data]
26
+ libreria_cafe_edd_db = ["py.typed"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,32 @@
1
+ from .modelos.enum.metodo_pago import MetodoPago
2
+ from .modelos.enum.tipo_venta import TipoVenta
3
+ from .modelos.cliente import Cliente
4
+ from .modelos.consumo_cafe import ConsumoCafe
5
+ from .modelos.consumo_libro import ConsumoLibro
6
+ from .modelos.detalles_reposicion import DetallesReposicion
7
+ from .modelos.factura import Factura
8
+ from .modelos.libro import Libro
9
+ from .modelos.membresia import Membresia
10
+ from .modelos.orden_reposicion import OrdenReposicion
11
+ from .modelos.proveedor import Proveedor
12
+ from .modelos.recomendacion_libro import RecomendacionLibro
13
+ from .modelos.venta import Venta
14
+ from .sesion import crear_sesion, establecer_logs
15
+
16
+ __all__ = [
17
+ "MetodoPago",
18
+ "TipoVenta",
19
+ "Cliente",
20
+ "ConsumoCafe",
21
+ "ConsumoLibro",
22
+ "DetallesReposicion",
23
+ "Factura",
24
+ "Libro",
25
+ "Membresia",
26
+ "OrdenReposicion",
27
+ "Proveedor",
28
+ "RecomendacionLibro",
29
+ "Venta",
30
+ "crear_sesion",
31
+ "establecer_logs"
32
+ ]
@@ -0,0 +1,3 @@
1
+ from sqlalchemy.orm import declarative_base
2
+
3
+ Base = declarative_base()
@@ -0,0 +1,33 @@
1
+ from typing import Optional, List
2
+ from datetime import date
3
+ from sqlalchemy import ForeignKey, String
4
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
5
+ from .base import Base
6
+ from typing import TYPE_CHECKING
7
+
8
+ if TYPE_CHECKING:
9
+ from .membresia import Membresia
10
+ from .consumo_libro import ConsumoLibro
11
+ from .consumo_cafe import ConsumoCafe
12
+ from .factura import Factura
13
+ from .recomendacion_libro import RecomendacionLibro
14
+
15
+ class Cliente(Base):
16
+ __tablename__ = 'cliente'
17
+
18
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
19
+ id_membresia: Mapped[Optional[int]] = mapped_column(ForeignKey('membresia.id'))
20
+ nombre: Mapped[str] = mapped_column(String(255))
21
+ cedula: Mapped[int] = mapped_column(unique=True)
22
+ fecha_ingreso: Mapped[date] = mapped_column()
23
+ fecha_cumple: Mapped[Optional[date]] = mapped_column()
24
+ frecuencia: Mapped[int] = mapped_column(default=0)
25
+ razon_social: Mapped[Optional[str]] = mapped_column(String(255))
26
+ direccion_fiscal: Mapped[Optional[str]] = mapped_column(String(500))
27
+ telefono: Mapped[Optional[str]] = mapped_column(String(20))
28
+
29
+ membresia: Mapped[Optional["Membresia"]] = relationship(back_populates="clientes")
30
+ consumos_libros: Mapped[List["ConsumoLibro"]] = relationship(back_populates="cliente")
31
+ consumos_cafe: Mapped[List["ConsumoCafe"]] = relationship(back_populates="cliente")
32
+ facturas: Mapped[List["Factura"]] = relationship(back_populates="cliente")
33
+ recomendaciones: Mapped[List["RecomendacionLibro"]] = relationship(back_populates="cliente")
@@ -0,0 +1,18 @@
1
+ from sqlalchemy import ForeignKey, String
2
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
3
+ from .base import Base
4
+ from typing import TYPE_CHECKING
5
+
6
+ if TYPE_CHECKING:
7
+ from .cliente import Cliente
8
+
9
+ class ConsumoCafe(Base):
10
+ __tablename__ = 'consumo_cafe'
11
+
12
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
13
+ id_cliente: Mapped[int] = mapped_column(ForeignKey('cliente.id'))
14
+ nombre_cafe: Mapped[str] = mapped_column(String(255))
15
+ tamano: Mapped[int] = mapped_column()
16
+ precio: Mapped[int] = mapped_column()
17
+
18
+ cliente: Mapped["Cliente"] = relationship(back_populates="consumos_cafe")
@@ -0,0 +1,20 @@
1
+ from typing import Optional
2
+ from sqlalchemy import ForeignKey, String
3
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
4
+ from .base import Base
5
+ from typing import TYPE_CHECKING
6
+
7
+ if TYPE_CHECKING:
8
+ from .cliente import Cliente
9
+
10
+ class ConsumoLibro(Base):
11
+ __tablename__ = 'consumo_libro'
12
+
13
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
14
+ id_cliente: Mapped[int] = mapped_column(ForeignKey('cliente.id'))
15
+ nombre_libro: Mapped[str] = mapped_column(String(255))
16
+ genero: Mapped[Optional[str]] = mapped_column(String(100))
17
+ autor: Mapped[Optional[str]] = mapped_column(String(255))
18
+ precio: Mapped[int] = mapped_column()
19
+
20
+ cliente: Mapped["Cliente"] = relationship(back_populates="consumos_libros")
@@ -0,0 +1,20 @@
1
+ from sqlalchemy import ForeignKey
2
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
3
+ from .base import Base
4
+ from typing import TYPE_CHECKING
5
+
6
+ if TYPE_CHECKING:
7
+ from .orden_reposicion import OrdenReposicion
8
+ from .libro import Libro
9
+
10
+ class DetallesReposicion(Base):
11
+ __tablename__ = 'detalles_reposicion'
12
+
13
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
14
+ id_orden: Mapped[int] = mapped_column(ForeignKey('orden_reposicion.id'))
15
+ id_libro: Mapped[int] = mapped_column(ForeignKey('libro.id'))
16
+ cantidad: Mapped[int] = mapped_column()
17
+ precio: Mapped[float] = mapped_column()
18
+
19
+ orden: Mapped["OrdenReposicion"] = relationship(back_populates="detalles")
20
+ libro: Mapped["Libro"] = relationship(back_populates="detalles_reposicion")
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+ class MetodoPago(Enum):
4
+ EFECTIVO = "Efectivo"
5
+ DIVISAS = "Divisas"
6
+ PUNTO = "Punto"
7
+ BIOPAGO = "Biopago"
8
+ PAGO_MOVIL = "PagoMovil"
9
+ TRANSFERENCIA = "Transferencia"
@@ -0,0 +1,5 @@
1
+ from enum import Enum
2
+
3
+ class TipoVenta(Enum):
4
+ CAFE = "Cafe"
5
+ LIBRO = "Libro"
@@ -0,0 +1,26 @@
1
+ from typing import List
2
+ from datetime import date
3
+ from .enum.metodo_pago import MetodoPago
4
+ from sqlalchemy import ForeignKey, Enum
5
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
6
+ from .base import Base
7
+ from typing import TYPE_CHECKING
8
+
9
+ if TYPE_CHECKING:
10
+ from .cliente import Cliente
11
+ from .venta import Venta
12
+
13
+ class Factura(Base):
14
+ __tablename__ = 'factura'
15
+
16
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
17
+ fecha: Mapped[date] = mapped_column()
18
+ metodo_pago: Mapped[MetodoPago] = mapped_column(Enum(MetodoPago))
19
+ subtotal: Mapped[float] = mapped_column()
20
+ monto_iva: Mapped[float] = mapped_column()
21
+ monto_igtf: Mapped[float] = mapped_column()
22
+ monto_total: Mapped[float] = mapped_column()
23
+ id_cliente: Mapped[int] = mapped_column(ForeignKey('cliente.id'))
24
+
25
+ cliente: Mapped["Cliente"] = relationship(back_populates="facturas")
26
+ ventas: Mapped[List["Venta"]] = relationship(back_populates="factura")
@@ -0,0 +1,20 @@
1
+ from typing import List
2
+ from sqlalchemy import String
3
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
4
+ from .base import Base
5
+ from typing import TYPE_CHECKING
6
+
7
+ if TYPE_CHECKING:
8
+ from .detalles_reposicion import DetallesReposicion
9
+
10
+ class Libro(Base):
11
+ __tablename__ = 'libro'
12
+
13
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
14
+ isbn: Mapped[str] = mapped_column(String(20), unique=True)
15
+ titulo: Mapped[str] = mapped_column(String(255))
16
+ stock_actual: Mapped[int] = mapped_column(default=0)
17
+ stock_minimo: Mapped[int] = mapped_column(default=0)
18
+ precio: Mapped[float] = mapped_column()
19
+
20
+ detalles_reposicion: Mapped[List["DetallesReposicion"]] = relationship(back_populates="libro")
@@ -0,0 +1,22 @@
1
+ from typing import List
2
+ from datetime import date
3
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
4
+ from .base import Base
5
+ from typing import TYPE_CHECKING
6
+
7
+ if TYPE_CHECKING:
8
+ from .cliente import Cliente
9
+
10
+ class Membresia(Base):
11
+ __tablename__ = 'membresia'
12
+
13
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
14
+ fecha_inicio: Mapped[date] = mapped_column()
15
+ fecha_vencimiento: Mapped[date] = mapped_column()
16
+ cantidad_libros: Mapped[int] = mapped_column()
17
+ descuento_cafe: Mapped[int] = mapped_column()
18
+ monto: Mapped[int] = mapped_column()
19
+ cantidad_cafe_gratis: Mapped[int] = mapped_column()
20
+ tiempo_mesa: Mapped[int] = mapped_column()
21
+
22
+ clientes: Mapped[List["Cliente"]] = relationship(back_populates="membresia")
@@ -0,0 +1,24 @@
1
+ from typing import Optional, List
2
+ from sqlalchemy import ForeignKey, String
3
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
4
+ from .base import Base
5
+ from datetime import date
6
+ from typing import TYPE_CHECKING
7
+
8
+ if TYPE_CHECKING:
9
+ from .proveedor import Proveedor
10
+ from .detalles_reposicion import DetallesReposicion
11
+
12
+ class OrdenReposicion(Base):
13
+ __tablename__ = 'orden_reposicion'
14
+
15
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
16
+ id_proveedor: Mapped[int] = mapped_column(ForeignKey('proveedor.id'))
17
+ fecha_ingreso: Mapped[date] = mapped_column()
18
+ fecha_solicitud: Mapped[date] = mapped_column()
19
+ fecha_entrega: Mapped[Optional[date]] = mapped_column()
20
+ estado: Mapped[str] = mapped_column(String(50))
21
+ total_orden: Mapped[float] = mapped_column()
22
+
23
+ proveedor: Mapped["Proveedor"] = relationship(back_populates="ordenes")
24
+ detalles: Mapped[List["DetallesReposicion"]] = relationship(back_populates="orden")
@@ -0,0 +1,19 @@
1
+ from typing import Optional, List
2
+ from sqlalchemy import String
3
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
4
+ from .base import Base
5
+ from typing import TYPE_CHECKING
6
+
7
+ if TYPE_CHECKING:
8
+ from .orden_reposicion import OrdenReposicion
9
+
10
+ class Proveedor(Base):
11
+ __tablename__ = 'proveedor'
12
+
13
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
14
+ nombre_empresa: Mapped[str] = mapped_column(String(255))
15
+ rif_nit: Mapped[str] = mapped_column(String(50), unique=True)
16
+ telefono: Mapped[Optional[str]] = mapped_column(String(20))
17
+ email: Mapped[Optional[str]] = mapped_column(String(255))
18
+
19
+ ordenes: Mapped[List["OrdenReposicion"]] = relationship(back_populates="proveedor")
@@ -0,0 +1,20 @@
1
+ from typing import Optional
2
+ from datetime import date
3
+ from sqlalchemy import ForeignKey, String
4
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
5
+ from .base import Base
6
+ from typing import TYPE_CHECKING
7
+
8
+ if TYPE_CHECKING:
9
+ from .cliente import Cliente
10
+
11
+ class RecomendacionLibro(Base):
12
+ __tablename__ = 'recomendacion_libro'
13
+
14
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
15
+ id_cliente: Mapped[int] = mapped_column(ForeignKey('cliente.id'))
16
+ isbn: Mapped[str] = mapped_column(String(20))
17
+ fecha_recomendacion: Mapped[date] = mapped_column()
18
+ tipo_recomendacion: Mapped[Optional[str]] = mapped_column(String(100))
19
+
20
+ cliente: Mapped["Cliente"] = relationship(back_populates="recomendaciones")
@@ -0,0 +1,21 @@
1
+ from sqlalchemy import ForeignKey, String, Enum
2
+ from sqlalchemy.orm import Mapped, mapped_column, relationship
3
+ from .enum.tipo_venta import TipoVenta
4
+ from .base import Base
5
+ from typing import TYPE_CHECKING
6
+
7
+ if TYPE_CHECKING:
8
+ from .factura import Factura
9
+
10
+ class Venta(Base):
11
+ __tablename__ = 'venta'
12
+
13
+ id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
14
+ cantidad: Mapped[int] = mapped_column()
15
+ precio: Mapped[float] = mapped_column()
16
+ nombre_mostrado: Mapped[str] = mapped_column(String(255))
17
+ tipo: Mapped[TipoVenta] = mapped_column(Enum(TipoVenta))
18
+ id_producto: Mapped[int] = mapped_column()
19
+ id_factura: Mapped[int] = mapped_column(ForeignKey('factura.id'))
20
+
21
+ factura: Mapped["Factura"] = relationship(back_populates="ventas")
@@ -0,0 +1,18 @@
1
+ import logging
2
+ from sqlalchemy import create_engine
3
+ from sqlalchemy.orm import sessionmaker
4
+ from .modelos.base import Base
5
+
6
+ logging.basicConfig()
7
+ logger = logging.getLogger('sqlalchemy.engine')
8
+
9
+ engine = create_engine('sqlite:///db.sqlite')
10
+ Base.metadata.create_all(engine)
11
+ Session = sessionmaker(bind=engine)
12
+
13
+ def crear_sesion():
14
+ return Session()
15
+
16
+ def establecer_logs(habilitados: bool):
17
+ level = logging.INFO if habilitados else logging.WARNING
18
+ logger.setLevel(level)
@@ -0,0 +1,11 @@
1
+ Metadata-Version: 2.4
2
+ Name: libreria-cafe-edd-db
3
+ Version: 1.0.0
4
+ Summary: Librería para manejar una base de datos relacional SQLite entre todos los módulos del proyecto final de Estructuras de Datos de manera consistente.
5
+ Author: justcarlux
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/justcarlux/libreria-cafe-edd-db
8
+ Project-URL: Repository, https://github.com/justcarlux/libreria-cafe-edd-db
9
+ Requires-Python: >=3.10
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: sqlalchemy>=2.0.0
@@ -0,0 +1,23 @@
1
+ pyproject.toml
2
+ src/libreria_cafe_edd_db/__init__.py
3
+ src/libreria_cafe_edd_db/py.typed
4
+ src/libreria_cafe_edd_db/sesion.py
5
+ src/libreria_cafe_edd_db.egg-info/PKG-INFO
6
+ src/libreria_cafe_edd_db.egg-info/SOURCES.txt
7
+ src/libreria_cafe_edd_db.egg-info/dependency_links.txt
8
+ src/libreria_cafe_edd_db.egg-info/requires.txt
9
+ src/libreria_cafe_edd_db.egg-info/top_level.txt
10
+ src/libreria_cafe_edd_db/modelos/base.py
11
+ src/libreria_cafe_edd_db/modelos/cliente.py
12
+ src/libreria_cafe_edd_db/modelos/consumo_cafe.py
13
+ src/libreria_cafe_edd_db/modelos/consumo_libro.py
14
+ src/libreria_cafe_edd_db/modelos/detalles_reposicion.py
15
+ src/libreria_cafe_edd_db/modelos/factura.py
16
+ src/libreria_cafe_edd_db/modelos/libro.py
17
+ src/libreria_cafe_edd_db/modelos/membresia.py
18
+ src/libreria_cafe_edd_db/modelos/orden_reposicion.py
19
+ src/libreria_cafe_edd_db/modelos/proveedor.py
20
+ src/libreria_cafe_edd_db/modelos/recomendacion_libro.py
21
+ src/libreria_cafe_edd_db/modelos/venta.py
22
+ src/libreria_cafe_edd_db/modelos/enum/metodo_pago.py
23
+ src/libreria_cafe_edd_db/modelos/enum/tipo_venta.py