Saltearse al contenido

Ordenes

La tabla Orders almacena la información relacionada con los pedidos realizados por los usuarios en el sistema. Cada registro representa un pedido único que incluye detalles del usuario que lo realizó, la fecha en que se hizo el pedido y el precio total del mismo. Además, la tabla contiene claves foráneas para vincularla con las tablas de usuarios y métodos de entrega, permitiendo gestionar relaciones con otras entidades del sistema.
Nombre Tipo Descripción Tipo de key
Id int Identificador único del pedido. PK
IdUser int Identificador del usuario que realizó el pedido. FK
IdDelivery int Identificador del envío. FK
DateOrder Date Fecha en que se realizó el pedido.
TotalPrice number Precio total del pedido.

Es importante resaltar que existe una tabla intermedia que relaciona a los productos y las Ordenes, llamada OrdersProducts

Nombre Tipo Descripción Tipo de key
IdProduct int FK que lo relaciona con la entidad de los productos y a su vez es parte de la clave compuesta FK PK
IdOrders int FK que lo relaciona con la entidad de las ordenes y a su vez es parte de la clave compuesta FK PK
ProductsNumbers int Cantidad de unidades compradas
Price double Precio de la compra de estas unidades

GetAll

GET /api/Order
response.json
{
"metaData":{
"totalCount":9,
"pageSize":1,
"currentPage":1,
"totalPage":9,
"hasNextPage":true,
"hasPreviousPage":false,
"nextPageURL":"/api/Order?MinPrice=&MaxPrice=&PageSize=1&PageNumber=2",
"previousPageURL":"/api/Order?MinPrice=&MaxPrice=&PageSize=1&PageNumber=false"
},
"statusCode":200,
"msg":"this all Orders filtered",
"response":[
{
"deliveryInfo":{
"idState":3,
"idUser":2012,
"code":"18fa3853-1af9-4a12-a183-6cadcfc4d5c3"
},
"userInfo":{
"id":2012,
"idRole":2,
"idAddress":2011,
"name":"Thor",
"secondName":"Odinson",
"email":"principe@asgard.com"
},
"orderProducts":[
{
"idProduct":2,
"idOrder":1,
"productsNumber":1,
"price":120000,
"numberCard":null,
"productInfo":{
"id":2,
"name":"GAN Mirror M (Magnético) UV 3×3 Morado",
"price":120000,
"stock":10,
"image":"eadc4650-7dab-4f70-9657-2354615566ed",
"description":"Nuevo desafío: GAN MirrorM es un nuevo diseño visual con un cubo de velocidad de 3 x 3, que no se resuelve con colores sino por formas. El cubo de espejo GAN te traerá más diversión",
"thumbnail":"39e50337-fe40-4683-88fb-b440d1bdb9a7"
}
}
],
"id":1,
"idUser":2012,
"idDelivery":2,
"date":"2024-07-22T17:50:04.367",
"finalPrice":120000,
"numberCard":"1234567890"
}
]
}

Params

orderQueryParams.cs
public class OrderQueryFilters
{
public int PageSize { get; set; } = 20;
public int PageNumber { get; set; } = 1;
public DateTime? Date { get; set; }
public DateTime? MinDate { get; set; }
public DateTime? MaxDate { get; set; }
public double? MinPrice { get; set; }
public double? MaxPrice { get; set; }
public int? IdUser { get; set; }
}

PageSize

tipo integer

Nos muestra el número de ordenes que se enviarán en la respuesta.

PageNumber

tipo integer

Indica la pagina en la que se encuentra actualmente

Date

tipo Date

Selecciona el conjunto de ordenes realizadas en una fecha

MinDate

tipo Date

Selecciona el conjunto de ordenes realizadas después de una fecha

MaxDate

tipo Date

Selecciona el conjunto de ordenes realizadas antes de una fecha

MinPrice

tipo integer

Selecciona el conjunto de ordenes cuyo totalprice es mayor a este valor

MaxPrice

tipo integer

Selecciona el conjunto de ordenes cuyo totalprice es menor a este valor

IdUser

tipo integer

Selecciona las ordenes pertenecientes a un usuario en especifico

Get by Id

GET /api/Order/id?id=1
response.json
{
"deliveryInfo": {
"idState": 3,
"idUser": 2012,
"code": "18fa3853-1af9-4a12-a183-6cadcfc4d5c3"
},
"userInfo": {
"id": 2012,
"idRole": 2,
"idAddress": 2011,
"name": "Thor",
"secondName": "Odinson",
"email": "principe@asgard.com"
},
"orderProducts": [
{
"idProduct": 2,
"idOrder": 1,
"productsNumber": 1,
"price": 120000,
"numberCard": null,
"productInfo": {
"id": 2,
"name": "GAN Mirror M (Magnético) UV 3×3 Morado",
"price": 120000,
"stock": 10,
"image": "eadc4650-7dab-4f70-9657-2354615566ed",
"description": "Nuevo desafío: GAN MirrorM es un nuevo diseño visual con un cubo de velocidad de 3 x 3, que no se resuelve con colores sino por formas. El cubo de espejo GAN te traerá más diversión",
"thumbnail": "39e50337-fe40-4683-88fb-b440d1bdb9a7"
}
}
],
"id": 1,
"idUser": 2012,
"idDelivery": 2,
"date": "2024-07-22T17:50:04.367",
"finalPrice": 120000,
"numberCard": "1234567890"
}

Crear Orden

POST /api/Order

Este endpoint recibe por medio del body los siguientes datos

body.json
{
"idUser": 0,
"date": "2024-12-29T22:27:48.194Z",
"finalPrice": 0,
"numberCard": "string",
"orderProducts": [
{
"idProduct": 0,
"productsNumber": 0,
"price": 0
}
]
}