Fase 3: Implementación de Listings (Avisos) - Entidades, Repositorio, API y Frontend Wizard integración

This commit is contained in:
2025-12-17 13:51:48 -03:00
parent f1bd25ea79
commit 1b88394b00
12 changed files with 353 additions and 4 deletions

View File

@@ -123,6 +123,37 @@ BEGIN
FOREIGN KEY (CategoryId) REFERENCES Categories(Id) ON DELETE CASCADE
);
END
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Listings')
BEGIN
CREATE TABLE Listings (
Id INT IDENTITY(1,1) PRIMARY KEY,
CategoryId INT NOT NULL,
OperationId INT NOT NULL,
Title NVARCHAR(200) NOT NULL,
Description NVARCHAR(MAX) NULL,
Price DECIMAL(18,2) NOT NULL DEFAULT 0,
Currency NVARCHAR(3) DEFAULT 'ARS',
CreatedAt DATETIME2 DEFAULT GETUTCDATE(),
Status NVARCHAR(20) DEFAULT 'Draft',
UserId INT NULL,
FOREIGN KEY (CategoryId) REFERENCES Categories(Id),
FOREIGN KEY (OperationId) REFERENCES Operations(Id),
FOREIGN KEY (UserId) REFERENCES Users(Id)
);
END
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'ListingAttributeValues')
BEGIN
CREATE TABLE ListingAttributeValues (
Id INT IDENTITY(1,1) PRIMARY KEY,
ListingId INT NOT NULL,
AttributeDefinitionId INT NOT NULL,
Value NVARCHAR(MAX) NOT NULL,
FOREIGN KEY (ListingId) REFERENCES Listings(Id) ON DELETE CASCADE,
FOREIGN KEY (AttributeDefinitionId) REFERENCES AttributeDefinitions(Id) ON DELETE NO ACTION
);
END
";
await connection.ExecuteAsync(schemaSql);
}