using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Modelo.Migrations
{
///
public partial class initialmigration : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Categoria",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Descripcion = table.Column(type: "TEXT", maxLength: 50, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Categoria", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Clientes",
columns: table => new
{
Cuit = table.Column(type: "INTEGER", nullable: false),
Nombre = table.Column(type: "TEXT", maxLength: 30, nullable: false),
Apellido = table.Column(type: "TEXT", maxLength: 30, nullable: false),
Direccion = table.Column(type: "TEXT", maxLength: 50, nullable: false),
Correo = table.Column(type: "TEXT", maxLength: 150, nullable: false),
Habilitado = table.Column(type: "INTEGER", nullable: false, defaultValue: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Clientes", x => x.Cuit);
});
migrationBuilder.CreateTable(
name: "Producto",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Nombre = table.Column(type: "TEXT", maxLength: 30, nullable: false),
Precio = table.Column(type: "float", nullable: false),
Habilitado = table.Column(type: "INTEGER", nullable: false, defaultValue: true),
EsPerecedero = table.Column(type: "INTEGER", nullable: false),
Discriminator = table.Column(type: "TEXT", maxLength: 21, nullable: false),
TipoDeEnvase = table.Column(type: "TEXT", nullable: true),
MesesHastaConsumoPreferente = table.Column(type: "INTEGER", nullable: true),
MesesHastaVencimiento = table.Column(type: "INTEGER", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Producto", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Proveedores",
columns: table => new
{
Cuit = table.Column(type: "INTEGER", nullable: false),
Nombre = table.Column(type: "TEXT", maxLength: 30, nullable: false),
RazonSocial = table.Column(type: "TEXT", maxLength: 60, nullable: false),
Direccion = table.Column(type: "TEXT", maxLength: 60, nullable: false),
Habilitado = table.Column(type: "INTEGER", nullable: false, defaultValue: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Proveedores", x => x.Cuit);
});
migrationBuilder.CreateTable(
name: "Facturas",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Total = table.Column(type: "REAL", nullable: false),
Fecha = table.Column(type: "TEXT", nullable: false),
IdCliente = table.Column(type: "INTEGER", nullable: false),
ClienteCuit = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Facturas", x => x.Id);
table.ForeignKey(
name: "FK_Facturas_Clientes_ClienteCuit",
column: x => x.ClienteCuit,
principalTable: "Clientes",
principalColumn: "Cuit",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ProductoCategoria",
columns: table => new
{
CategoriaId = table.Column(type: "INTEGER", nullable: false),
ProductoId = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ProductoCategoria", x => new { x.CategoriaId, x.ProductoId });
table.ForeignKey(
name: "FK_ProductoCategoria_Categoria_CategoriaId",
column: x => x.CategoriaId,
principalTable: "Categoria",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ProductoCategoria_Producto_ProductoId",
column: x => x.ProductoId,
principalTable: "Producto",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "OrdenDeCompras",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ProveedorCuit = table.Column(type: "INTEGER", nullable: false),
IdProveedor = table.Column(type: "INTEGER", nullable: false),
Entregado = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_OrdenDeCompras", x => x.Id);
table.ForeignKey(
name: "FK_OrdenDeCompras_Proveedores_ProveedorCuit",
column: x => x.ProveedorCuit,
principalTable: "Proveedores",
principalColumn: "Cuit",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Presupuestos",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Fecha = table.Column(type: "TEXT", nullable: false),
Habilitado = table.Column(type: "INTEGER", nullable: false),
Aceptado = table.Column(type: "INTEGER", nullable: false),
ProveedorCuit = table.Column(type: "INTEGER", nullable: false),
IdProveedor = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Presupuestos", x => x.Id);
table.ForeignKey(
name: "FK_Presupuestos_Proveedores_ProveedorCuit",
column: x => x.ProveedorCuit,
principalTable: "Proveedores",
principalColumn: "Cuit",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ProductoProveedor",
columns: table => new
{
ProveedorId = table.Column(type: "INTEGER", nullable: false),
ProductoId = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ProductoProveedor", x => new { x.ProveedorId, x.ProductoId });
table.ForeignKey(
name: "FK_ProductoProveedor_Producto_ProductoId",
column: x => x.ProductoId,
principalTable: "Producto",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ProductoProveedor_Proveedores_ProveedorId",
column: x => x.ProveedorId,
principalTable: "Proveedores",
principalColumn: "Cuit",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Remitos",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ProveedorCuit = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Remitos", x => x.Id);
table.ForeignKey(
name: "FK_Remitos_Proveedores_ProveedorCuit",
column: x => x.ProveedorCuit,
principalTable: "Proveedores",
principalColumn: "Cuit",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "DetallesFacturas",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false),
IdFactura = table.Column(type: "INTEGER", nullable: false),
Cantidad = table.Column(type: "INTEGER", nullable: false),
ProductoId = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_DetallesFacturas", x => new { x.Id, x.IdFactura });
table.ForeignKey(
name: "FK_DetallesFacturas_Facturas_IdFactura",
column: x => x.IdFactura,
principalTable: "Facturas",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_DetallesFacturas_Producto_ProductoId",
column: x => x.ProductoId,
principalTable: "Producto",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "DetalleOrdenDeCompras",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false),
IdOrdenDeCompra = table.Column(type: "INTEGER", nullable: false),
MontoCU = table.Column(type: "REAL", nullable: false),
IdPresupuesto = table.Column(type: "INTEGER", nullable: false),
Cantidad = table.Column(type: "INTEGER", nullable: false),
ProductoId = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_DetalleOrdenDeCompras", x => new { x.Id, x.IdOrdenDeCompra });
table.ForeignKey(
name: "FK_DetalleOrdenDeCompras_OrdenDeCompras_IdOrdenDeCompra",
column: x => x.IdOrdenDeCompra,
principalTable: "OrdenDeCompras",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_DetalleOrdenDeCompras_Producto_ProductoId",
column: x => x.ProductoId,
principalTable: "Producto",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "DetallePresupuestos",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false),
IdPresupuesto = table.Column(type: "INTEGER", nullable: false),
MontoCUPropuesto = table.Column(type: "REAL", nullable: false),
Cantidad = table.Column(type: "INTEGER", nullable: false),
ProductoId = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_DetallePresupuestos", x => new { x.Id, x.IdPresupuesto });
table.ForeignKey(
name: "FK_DetallePresupuestos_Presupuestos_IdPresupuesto",
column: x => x.IdPresupuesto,
principalTable: "Presupuestos",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_DetallePresupuestos_Producto_ProductoId",
column: x => x.ProductoId,
principalTable: "Producto",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Lotes",
columns: table => new
{
Id = table.Column(type: "INTEGER", nullable: false),
IdRemito = table.Column(type: "INTEGER", nullable: false),
Fecha = table.Column(type: "TEXT", nullable: false),
Habilitado = table.Column(type: "INTEGER", nullable: false),
Cantidad = table.Column(type: "INTEGER", nullable: false),
ProductoId = table.Column(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Lotes", x => new { x.Id, x.IdRemito });
table.ForeignKey(
name: "FK_Lotes_Producto_ProductoId",
column: x => x.ProductoId,
principalTable: "Producto",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Lotes_Remitos_IdRemito",
column: x => x.IdRemito,
principalTable: "Remitos",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_DetalleOrdenDeCompras_IdOrdenDeCompra",
table: "DetalleOrdenDeCompras",
column: "IdOrdenDeCompra");
migrationBuilder.CreateIndex(
name: "IX_DetalleOrdenDeCompras_ProductoId",
table: "DetalleOrdenDeCompras",
column: "ProductoId");
migrationBuilder.CreateIndex(
name: "IX_DetallePresupuestos_IdPresupuesto",
table: "DetallePresupuestos",
column: "IdPresupuesto");
migrationBuilder.CreateIndex(
name: "IX_DetallePresupuestos_ProductoId",
table: "DetallePresupuestos",
column: "ProductoId");
migrationBuilder.CreateIndex(
name: "IX_DetallesFacturas_IdFactura",
table: "DetallesFacturas",
column: "IdFactura");
migrationBuilder.CreateIndex(
name: "IX_DetallesFacturas_ProductoId",
table: "DetallesFacturas",
column: "ProductoId");
migrationBuilder.CreateIndex(
name: "IX_Facturas_ClienteCuit",
table: "Facturas",
column: "ClienteCuit");
migrationBuilder.CreateIndex(
name: "IX_Lotes_IdRemito",
table: "Lotes",
column: "IdRemito");
migrationBuilder.CreateIndex(
name: "IX_Lotes_ProductoId",
table: "Lotes",
column: "ProductoId");
migrationBuilder.CreateIndex(
name: "IX_OrdenDeCompras_ProveedorCuit",
table: "OrdenDeCompras",
column: "ProveedorCuit");
migrationBuilder.CreateIndex(
name: "IX_Presupuestos_ProveedorCuit",
table: "Presupuestos",
column: "ProveedorCuit");
migrationBuilder.CreateIndex(
name: "IX_ProductoCategoria_ProductoId",
table: "ProductoCategoria",
column: "ProductoId");
migrationBuilder.CreateIndex(
name: "IX_ProductoProveedor_ProductoId",
table: "ProductoProveedor",
column: "ProductoId");
migrationBuilder.CreateIndex(
name: "IX_Remitos_ProveedorCuit",
table: "Remitos",
column: "ProveedorCuit");
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "DetalleOrdenDeCompras");
migrationBuilder.DropTable(
name: "DetallePresupuestos");
migrationBuilder.DropTable(
name: "DetallesFacturas");
migrationBuilder.DropTable(
name: "Lotes");
migrationBuilder.DropTable(
name: "ProductoCategoria");
migrationBuilder.DropTable(
name: "ProductoProveedor");
migrationBuilder.DropTable(
name: "OrdenDeCompras");
migrationBuilder.DropTable(
name: "Presupuestos");
migrationBuilder.DropTable(
name: "Facturas");
migrationBuilder.DropTable(
name: "Remitos");
migrationBuilder.DropTable(
name: "Categoria");
migrationBuilder.DropTable(
name: "Producto");
migrationBuilder.DropTable(
name: "Clientes");
migrationBuilder.DropTable(
name: "Proveedores");
}
}
}